stringstream将字符串对象与流相关联,使您可以像从流中读取字符串一样(例如cin)。
基本方法是–
clear()—清除流
str()—获取并设置其内容存在于流中的字符串对象。
运算符<< —将字符串添加到stringstream对象。
运算符>> —从stringstream对象中读取内容,
stringstream类在解析输入时非常有用。
应用范围:
1.计算字符串中的单词数
输出:
字数是:6
2、打印字符串中单个单词的频率
3、给定的字符串中删除空格
给定字符串,请删除字符串中的所有空格并返回。
例:输入:C语言 C++;输出:C语言C++
预期的时间复杂度为O(n),并且只有一个字符串遍历。
1)遍历给定字符串的所有字符,请执行以下操作
a)如果当前字符是空格,则移动所有后续字符 字符返回一个位置并减小其长度 结果字符串。
上述解决方案的时间复杂度为O(n 2)。
更好的解决方案可以在O(n)的时间解决这个问题。这个想法是跟踪到目前为止所看到的非空格字符的计数。
1)初始化'count'= 0(到目前为止看到的非空格字符的计数)
2)遍历给定字符串的所有字符,请执行以下操作
a)如果当前字符为非空格,则放置此字符
在索引“计数”处增加“计数”
3)最后,在索引'count'处放置'\ 0'
下面是上述算法的实现。
上述解决方案的时间复杂度为O(n),它只对字符串进行一次遍历。
有朋友建议的另一种解决方案是使用预定义的函数。这是实现:
希望对大家有帮助~
另外如果你想更好的提升你的编程能力,学好C语言C++编程!弯道超车,快人一步!笔者这里或许可以帮到你~
编程学习书籍分享:
编程学习视频分享:
分享(源码、项目实战视频、项目笔记,基础入门教程)
欢迎转行和学习编程的伙伴,利用更多的资料学习成长比自己琢磨更快哦!
C语言C++编程学习交流圈子,点击下方【了解更多】获取更多学习资料帮助你学习成长哦~