我有一个使用stringstream / getline()来解析字符串的while循环,但是我在操作循环结果时遇到了麻烦。循环将字符串分成3个部分,并将每个字放在循环的循环中的变量“word”中。但是,如何将每个部分存储在变量或数组中,以便我可以在while循环之外使用它?
循环
string word;
stringstream stream(cmdArgs.c_str());
while( getline(stream, word, ' ') )
// Manipulate results
变量“cmdArgs”是字符串。
答案 0 :(得分:4)
string word;
vector<string> words;
stringstream stream(cmdArgs.c_str());
while( getline(stream, word, ' ') )
{
words.push_back(words);
}
// Manipulate results
参见vector class:http://www.cplusplus.com/reference/stl/vector/
答案 1 :(得分:2)
使用向量可以将字符串分解为单词并单独存储每个单词,无论多少:
string word;
stringstream stream(cmdArgs.c_str());
vector<string> words;
while( getline(stream, word, ' ') )
{
words.push_back(word);
}
如果你是知己,正好有3个单词你也可以使用普通数组:
string word;
stringstream stream(cmdArgs.c_str());
string words[3];
int index = 0;
while( getline(stream, word, ' ') )
{
words[index++] = word;
}
但如果传入的字符串比预期的长,你会溢出该数组。