如何在C ++ while循环中创建自动递增数组?

时间:2012-11-01 14:57:56

标签: c++ arrays string while-loop

我有一个使用stringstream / getline()来解析字符串的while循环,但是我在操作循环结果时遇到了麻烦。循环将字符串分成3个部分,并将每个字放在循环的循环中的变量“word”中。但是,如何将每个部分存储在变量或数组中,以便我可以在while循环之外使用它?

循环

string word;
    stringstream stream(cmdArgs.c_str());
    while( getline(stream, word, ' ') )
          // Manipulate results

变量“cmdArgs”是字符串。

2 个答案:

答案 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;  
}  

但如果传入的字符串比预期的长,你会溢出该数组。