微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

从字符串中提取字符时,基于范围的循环和stringstream有什么区别

如何解决从字符串中提取字符时,基于范围的循环和stringstream有什么区别

考虑类似字符串s =“ xyz123”的字符串。

for(char ch : s)
    cout<<ch;

和stringstream之类的

char ch;
stringstream ss(s);
while(ss>>ch) 
    cout<<ch;

它们都提供相同的解决方案。在任何情况下两者的行为都不同吗? 何时应使用它们。

解决方法

第二个将跳过字符串中的任何空格。 >>就是这样。

除非实际上需要跳过空格,否则也不需要第二个版本。当在字符串中内置有用于迭代的方法时,为什么要构造一个仅用于迭代字符串的新对象。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。