gpt4 book ai didi

c++ - 用空格拆分字符串但只得到第一个字

转载 作者:行者123 更新时间:2023-11-28 06:02:14 25 4
gpt4 key购买 nike

我在用空格分隔字符串时遇到问题。我已经尝试了 2 个建议的解决方案,如下所示: Split a string in C++?(使用copy + istringstream和split方法)

但是,无论我做什么, vector 都只会得到第一个词(而不是其余的)。当我使用 split 方法时,它可以处理任何其他内容(点、逗号、分号...),但不能处理空格。

这是我当前的代码,你能告诉我哪里错了吗?或者我应该如何尝试解决问题?

int main()
{
std::vector<std::string> textVector;
std::string textString;

std::cout << "Input command : ";
std::cin >> textString;

std::istringstream iss(textString);
std::copy(std::istream_iterator<std::string>(iss), std::istream_iterator<std::string>(), std::back_inserter(textVector));

for (int i = 0 ; i < textVector.size(); i++) {
std::cout << textVector[i];
}
return 0;
}

可运行代码:http://cpp.sh/8nzq

最佳答案

原因很简单,std::cin >> textString 只读到第一个空格。所以 textString 只包含第一个单词。

要阅读整行,您应该改用:std::getline(std::cin, textString);

关于c++ - 用空格拆分字符串但只得到第一个字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33036709/

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