我正在尝试迭代字符串的单词.
可以假设该字符串由用空格分隔的单词组成.
请注意,我对C字符串函数或那种字符操作/访问不感兴趣.另外,请在答案中优先考虑优雅而不是效率.
我现在最好的解决方案是:
#include <iostream>
#include <sstream>
#include <string>
using namespace std;
int main()
{
string s = "Somewhere down the road";
istringstream iss(s);
do
{
string subs;
iss >> subs;
cout << "Substring: " << subs << endl;
} while (iss);
}
Run Code Online (Sandbox Code Playgroud)
有没有更优雅的方式来做到这一点?
另一个请求抱歉..现在我正在逐个阅读令牌并且它有效,但我想知道什么时候有一个新的线路..
如果我的文件包含
Hey Bob
Now
Run Code Online (Sandbox Code Playgroud)
应该给我
Hey
Bob
[NEW LINE]
NOW
Run Code Online (Sandbox Code Playgroud)
有没有办法在不使用getline的情况下执行此操作?
我是C++的初学者,我想知道如何做到这一点.我想写一个接受文本行的代码.例如"Hello stackoverflow是一个非常好的网站"
从输出我只想打印前三个单词,跳过其余的.
我想要的输出:"Hello stackoverflow是"
如果是Java,我会使用字符串split().至于C++,我真的不知道.他们的任何类似或C++的方法是什么?