C ++字符串数组切片

时间:2011-09-20 20:55:59

标签: c++ arrays string

如何将输入的字符串(例如“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

3 个答案:

答案 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读取输入的最佳方式。但是你可以使用这种方法来分割你从用户那里获得的完整字符串。