gpt4 book ai didi

c++ - 如何遍历字符串中的单词?

转载 作者:太空宇宙 更新时间:2023-11-04 14:24:54 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;
}

请注意,此解决方案不会跳过空标记,因此以下将找到 4 个项目,其中一个为空:

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

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

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