gpt4 book ai didi

c++ - 如何迭代字符串的单词?

转载 作者:bug小助手 更新时间:2023-10-28 01:29:45 25 4
gpt4 key购买 nike

如何遍历由空格分隔的单词组成的字符串的单词?

请注意,我对 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);
}

最佳答案

我用它来通过分隔符分割字符串。第一个将结果放入预先构建的 vector 中,第二个返回一个新 vector 。

#include <string>
#include <sstream>
#include <vector>
#include <iterator>

template <typename Out>
void split(const std::string &s, char delim, Out result) {
std::istringstream iss(s);
std::string item;
while (std::getline(iss, item, delim)) {
*result++ = item;
}
}

std::vector<std::string> split(const std::string &s, char delim) {
std::vector<std::string> elems;
split(s, delim, std::back_inserter(elems));
return elems;
}

注意这个方案没有跳过空tokens,所以下面会找到4个item,其中一个是空的:

std::vector<std::string> x = split("one:two::three", ':');

关于c++ - 如何迭代字符串的单词?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/236129/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com