Как ввести текст в массив строк?

плоды струны [200];

Как я могу ввести строку в массив?

Example:
My mom has apples;
So , fruits array will contain:
fruits[0] = "My";
fruits[1] = "mom";
..........etc.

Как я могу это сделать?

1

Решение

Если вы читаете со стандартного ввода:

int i = 0;
for (string word; cin >> word; i++)
names[i] = word;

Если вы читаете из stringиспользовать istringstream вместо.

6

Другие решения

Если вы хотите использовать стандартную библиотеку C ++ в полной мере, используйте входные итераторы и vector<string> вместо массива:

vector<string> words;
back_insert_iterator< vector<string> > back_iter (words);
istream_iterator<string> eos;
istream_iterator<string> iit (cin);
copy (iit, eos, back_iter);

С помощью vector<string> устраняет проблему, связанную с необходимостью угадать, сколько слов будет введено, и с последствиями неправильного предположения.

3

Самое компактное решение:

vector<string> words;
copy(istream_iterator<string>(cin),
istream_iterator<string>(),
back_inserter(words));

Это решение @ dasblinkenlight, написанное с использованием временных переменных.

0
По вопросам рекламы ammmcru@yandex.ru
Adblock
detector