c++字符串数组切片

C++ string array slice

本文关键字:切片 数组 字符串 c++      更新时间:2023-10-16

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

如果您想要读取以空格分隔的单词,您可以利用从输入流中提取字符串将在空格处停止的事实:

for(int i = 0; i < SIZE; i++)
{
    cout << i+1 << ")";
    cin >> digit[i];
}

如果你想把所有的'five'放在一行中,你也可以这样做。然后你可以使用strtok()将字符串分成五个字符串。参见:http://www.cplusplus.com/reference/clibrary/cstring/strtok/

您也可以使用3个参数的getline函数。第三个是分隔符

 getline(cin, digit[i], ' ');

当然,从cin读取输入不是最好的方法。但是您可以使用这种方法来分割完整字符串,您可以从user.

中获得完整字符串。