如何将输入的字符串(例如“one two three four five”)拆分为数组。 我当时有这个:
const int SIZE = 5;
string digit[SIZE];
cout << "Enter the five here:";
for(int i = 0; i < SIZE; i++)
{
cout << i+1 << ")";
getline(cin, digit[i]);
}
但是就目前而言,用户每次都必须输入。如何在上面的示例输入中调用digit[1]
时,我得到two
。希望这是有道理的,我会想象有一些功能可以为你做到这一点,但如果真的有基本的方法,这可能会让我受益最好,我还在学习。 THX
答案 0 :(得分:4)
如果要读取由空格分隔的单词,可以利用从输入流中提取字符串将停留在空白处的事实:
for(int i = 0; i < SIZE; i++)
{
cout << i+1 << ")";
cin >> digit[i];
}
答案 1 :(得分:0)
如果你想在一行中取出所有'五',你也可以这样做。
然后你可以使用strtok()
将字符串拆分为五个字符串。
见:http://www.cplusplus.com/reference/clibrary/cstring/strtok/
答案 2 :(得分:0)
您也可以使用带有3个参数的getline
函数。第3个是分隔符。
getline(cin, digit[i], ' ');
当然,这不是从cin
读取输入的最佳方式。但是你可以使用这种方法来分割你从用户那里获得的完整字符串。