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

问题描述

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

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

和stringstream之类的

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

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

解决方法

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

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

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...