如何迭代由空格分隔的单词组成的字符串的单词?
请注意,我对 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);
}
原文由 Ashwin Nanjappa 发布,翻译遵循 CC BY-SA 4.0 许可协议
值得一提的是,这是从输入字符串中提取标记的另一种方法,仅依赖于标准库设施。这是 STL 设计背后的力量和优雅的一个例子。
可以使用相同的通用
copy
算法将提取的令牌插入到容器中,而不是将提取的令牌复制到输出流中。…或直接创建
vector
: