stringstream将字符串对象与流相关联,使您可以像从流中读取字符串一样(例如cin)。

基本方法是–

clear()—清除流

str()—获取并设置其内容存在于流中的字符串对象。

运算符<< —将字符串添加到stringstream对象。

运算符>> —从stringstream对象中读取内容,

stringstream类在解析输入时非常有用。

应用范围:

1.计算字符串中的单词数

C/C++编程笔记:C++中的stringstream及其应用_C/C++编程

输出:

  字数是:6

2、打印字符串中单个单词的频率

C/C++编程笔记:C++中的stringstream及其应用_stringstream_02

3、给定的字符串中删除空格

给定字符串,请删除字符串中的所有空格并返回。

例:输入:C语言  C++;输出:C语言C++

预期的时间复杂度为O(n),并且只有一个字符串遍历。

1)遍历给定字符串的所有字符,请执行以下操作

         a)如果当前字符是空格,则移动所有后续字符 字符返回一个位置并减小其长度 结果字符串。

上述解决方案的时间复杂度为O(n 2)。

更好的解决方案可以在O(n)的时间解决这个问题。这个想法是跟踪到目前为止所看到的非空格字符的计数。

1)初始化'count'= 0(到目前为止看到的非空格字符的计数)

2)遍历给定字符串的所有字符,请执行以下操作

    a)如果当前字符为非空格,则放置此字符

        在索引“计数”处增加“计数”

3)最后,在索引'count'处放置'\ 0'

下面是上述算法的实现。

C/C++编程笔记:C++中的stringstream及其应用_C/C++编程_03

上述解决方案的时间复杂度为O(n),它只对字符串进行一次遍历。

有朋友建议的另一种解决方案是使用预定义的函数。这是实现:

C/C++编程笔记:C++中的stringstream及其应用_stringstream_04

希望对大家有帮助~

另外如果你想更好的提升你的编程能力,学好C语言C++编程!弯道超车,快人一步!笔者这里或许可以帮到你~

C语言C++编程学习交流圈子,QQ群464501141 微信公众号:C语言编程学习基地

分享(源码、项目实战视频、项目笔记,基础入门教程)

欢迎转行和学习编程的伙伴,利用更多的资料学习成长比自己琢磨更快哦!

编程学习书籍分享:

C/C++编程笔记:C++中的stringstream及其应用_stringstream_05

编程学习视频分享:

 C/C++编程笔记:C++中的stringstream及其应用_stringstream_06