C ++ строковый массив ломтик - PullRequest
0 голосов
/ 21 сентября 2011

Как бы я разбил введенную строку, такую ​​как «один два три четыре пять» в массив. в настоящее время у меня есть это:

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. Надеюсь, это имеет смысл, я думаю, что для вас есть какая-то функция, но если есть действительно элементарный способ сделать это, это, вероятно, принесет мне наибольшую пользу, я все еще учусь. ТНХ

Ответы [ 3 ]

4 голосов
/ 21 сентября 2011

Если вы хотите прочитать слова, разделенные пробелами, вы можете воспользоваться тем, что извлечение строки из входного потока остановится на пробеле:

for(int i = 0; i < SIZE; i++)
{
    cout << i+1 << ")";
    cin >> digit[i];
}
0 голосов
/ 21 сентября 2011

Вы также можете использовать функцию getline с 3 аргументами.Третий - это разделитель.

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

Конечно, это не лучший способ прочитать ввод с cin.Но вы можете использовать такой подход для разбиения полной строки, которую вы получили от пользователя.

0 голосов
/ 21 сентября 2011

хорошо, если вы хотите взять все «пять» в одну строку, вы можете сделать это также. и затем вы можете использовать strtok(), чтобы разбить строку на пять строк. см .: http://www.cplusplus.com/reference/clibrary/cstring/strtok/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...