我的目标是用C ++做到这一点:
1.让用户输入包含任意数量单词的行
2.将该行分为不同的单词
3.将这些单词存储到单独的字符串变量中
我知道我们可以使用 istringstream 对象分割字符串的单词。 但我的问题是如何将它们存储在不同的字符串变量中?。我知道无法创建字符串数组。
另外,如何检测字符串流中字符串的结尾,就像文件流中的eof()标记一样?
答案 0 :(得分:3)
由于您已经在使用标准库,为什么不使用矢量?
#include <iostream>
#include <sstream>
#include <vector>
#include <string>
std::string input = "abc def ghi";
std::istringstream ss(input);
std::string token;
std::vector<std::string> vec;
while(std::getline(ss, token, ' ')) {
vec.push_back(token);
}
//vec now contains ['abc', 'def', 'ghi']
答案 1 :(得分:1)
您有多种选择:
答案 2 :(得分:0)
是的,我从以上各种答案和评论中得出结论后回答了我自己的问题。我将以代码的形式回答。
#include <iostream>
#include <sstream>
#include <string>
#include <vector>
using namespace std;
int main()
{
string str, word;
vector<string> myVector;
getline(cin, str);
stringstream iss(str);
while(iss >> word)
myVector.push_back(word);
}