Форум программистов, компьютерный форум CyberForum.ru

Организовать ввод слов с клавиатуры в массив - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 17, средняя оценка - 4.88
Valli1
4 / 4 / 0
Регистрация: 14.09.2012
Сообщений: 64
14.09.2012, 00:12     Организовать ввод слов с клавиатуры в массив #1
Как организовать ввод слов с клавиатуры в массив таким образом, что-бы каждое слово помещалось в новую строку? Подскажите пожалуйста.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Toshkarik
 Аватар для Toshkarik
1139 / 856 / 50
Регистрация: 03.08.2011
Сообщений: 2,381
Завершенные тесты: 1
14.09.2012, 00:18     Организовать ввод слов с клавиатуры в массив #2
C++
1
2
3
4
5
6
7
char strings[ 5 ][ 256 ] = {{ '\0' }};
 
for ( std::size_t i = 0; i < 5; i++ )
   std::cin >> strings[ i ];
 
for ( std::size_t i = 0; i < 5; i++ )
   std::cout << strings[ i ] << std::endl;
Valli1
4 / 4 / 0
Регистрация: 14.09.2012
Сообщений: 64
14.09.2012, 00:34  [ТС]     Организовать ввод слов с клавиатуры в массив #3
Дело в том, что я пробовал уже аналогичным образом, но тут получается необходимый ввод 5 слов. Как сделать так, что-бы кол-во слов не ограничивалось?
Toshkarik
 Аватар для Toshkarik
1139 / 856 / 50
Регистрация: 03.08.2011
Сообщений: 2,381
Завершенные тесты: 1
14.09.2012, 00:41     Организовать ввод слов с клавиатуры в массив #4
C++
1
2
3
4
5
for ( std::size_t i = 0; std::cin >> strings[ i ]; i++ )
   ;
 
std::cin.clear();
std::cin.sync();
Но тут опять же, не больше 5 слов, так как мы выделили память всего лишь под 5 строк. Можно так же воспользоваться классами string и vector.

C++
1
2
3
4
5
6
7
8
9
10
11
std::vector< std::string > strings;
std::string tempString;
 
while ( std::cin >> tempString )
   strings.push_back( tempString );
 
std::cin.cleare();
std::cin.sync();
 
for ( std::size_t i = 0; i < strings.size(); i++ )
   std::cout << strings[ i ] << std::endl;
ADD: для окончанию ввода в обоих случаях нужно ввести вместо нового слова комбинацию EOF ( ctrl + z в Win );
Valli1
4 / 4 / 0
Регистрация: 14.09.2012
Сообщений: 64
14.09.2012, 01:18  [ТС]     Организовать ввод слов с клавиатуры в массив #5
Нужно именно через массив. И представляет интерес ввод меньшего кол-ва слов. Допустим я хочу ввести 3 слова из 5 ти. Сохраняются ли они в массиве и просто не выводятся через cout? Если не сохраняются, то возможно ли использовать динамический массив, для достижения требуемого эффекта?
Дело в том, что массив нужен для решения задачи: подсчитать кол-во слов начинающихся на гласную и т.д. при условии, что программа читает по одному слову за раз Массив нужен для выделения первой буквы.Ну и решение максимально простыми средствами, точнее с использованием азов. Я решил ее несколькими способами, но они кажутся слишком громоздкими.
Toshkarik
 Аватар для Toshkarik
1139 / 856 / 50
Регистрация: 03.08.2011
Сообщений: 2,381
Завершенные тесты: 1
14.09.2012, 01:23     Организовать ввод слов с клавиатуры в массив #6
А ну тогда Вам совершенно не нужен массив под слова, этого ведь не сказано в задачи. Все делается очень просто:
C++
1
2
3
4
5
6
char word[ 256 ]; //создаем массив символов для ввода слова
 
while ( std::cin >> word ) { //вводим следующее слово, или EOF ( ctrl + z в Win ) для завершения.
   //тут выполняем 
   //необходимые действия
}
Valli1
4 / 4 / 0
Регистрация: 14.09.2012
Сообщений: 64
14.09.2012, 01:56  [ТС]     Организовать ввод слов с клавиатуры в массив #7
Цитата Сообщение от Toshkarik Посмотреть сообщение
cin >> word
В условии сказано: ввод целой строки. А в данном случае после пробела оставшаяся инфа теряется и нужно вводить следующее слово за пробелом снова. Нужно следующее: написание строки, а уже ее загрузка в переработку по словам.Пробовал даже так, все работает, но самый "долгоиграющий"))
C++
1
2
3
4
5
6
7
8
9
char a[10];
cin>>a;
char a1[10]; 
cin>>a1;
.....
int x=0; 
if(a[0]=='a'||a[0]=='e'||...)
++x;
if(a1[0]=='a'||....) \\ и т.д.
Toshkarik
 Аватар для Toshkarik
1139 / 856 / 50
Регистрация: 03.08.2011
Сообщений: 2,381
Завершенные тесты: 1
14.09.2012, 02:11     Организовать ввод слов с клавиатуры в массив #8
Цитата Сообщение от Valli1 Посмотреть сообщение
В условии сказано: ввод целой строки.
А это тогда что?
Цитата Сообщение от Valli1 Посмотреть сообщение
программа читает по одному слову за раз
Valli1
4 / 4 / 0
Регистрация: 14.09.2012
Сообщений: 64
14.09.2012, 02:23  [ТС]     Организовать ввод слов с клавиатуры в массив #9
Напишите программу которая читает по одному слову за раз..... Вводите слова: qwerty asdfg zxcvb.?
Toshkarik
 Аватар для Toshkarik
1139 / 856 / 50
Регистрация: 03.08.2011
Сообщений: 2,381
Завершенные тесты: 1
14.09.2012, 02:25     Организовать ввод слов с клавиатуры в массив #10
Все верно, Вам дали список слов. Это никак не означает что нужно вводить строку слов. Ясно написано ведь по одному слову за раз
Valli1
4 / 4 / 0
Регистрация: 14.09.2012
Сообщений: 64
14.09.2012, 02:36  [ТС]     Организовать ввод слов с клавиатуры в массив #11
Обозначает. Однозначно. Следует из стиля постановки задач в этой книге: Пратта С.Язык программирования С++ стр.305.
Toshkarik
 Аватар для Toshkarik
1139 / 856 / 50
Регистрация: 03.08.2011
Сообщений: 2,381
Завершенные тесты: 1
14.09.2012, 02:40     Организовать ввод слов с клавиатуры в массив #12
Нет, не означает. Я не читал эту книгу, но если Вы дословно написали задание, то значит нужно вводить по одному слову за раз.
Valli1
4 / 4 / 0
Регистрация: 14.09.2012
Сообщений: 64
14.09.2012, 03:05  [ТС]     Организовать ввод слов с клавиатуры в массив #13
Возможно имеется ввиду, что при
C++
1
cin>>a;
слово пробелом который заменяется \0, преобразуется в строку и помещается в массив, затем следующее слово помещается в следующий свободный массив таким образом достигается поступление слов по одному, а не загоняется вся написанная строка как например в
C++
1
cin.getline(a,size);
Может просто некорректно сформулировано условие.
Написал дословно.
Toshkarik
 Аватар для Toshkarik
1139 / 856 / 50
Регистрация: 03.08.2011
Сообщений: 2,381
Завершенные тесты: 1
14.09.2012, 03:09     Организовать ввод слов с клавиатуры в массив #14
Какое название темы этого упражнения?
Valli1
4 / 4 / 0
Регистрация: 14.09.2012
Сообщений: 64
14.09.2012, 03:40  [ТС]     Организовать ввод слов с клавиатуры в массив #15
Операторы ветвления и логические операции.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
14.09.2012, 03:48     Организовать ввод слов с клавиатуры в массив
Еще ссылки по теме:

Ввод с клавиатуры в массив C++
C++ Ввод слов с клавиатуры и вывод их на экран
C++ Организовать ввод символов в массив

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Toshkarik
 Аватар для Toshkarik
1139 / 856 / 50
Регистрация: 03.08.2011
Сообщений: 2,381
Завершенные тесты: 1
14.09.2012, 03:48     Организовать ввод слов с клавиатуры в массив #16
Тогда могу сказать с вероятностью 99%, что имелось ввиду именно ввод по одному слову, здесь массив не нужен, просто вводите слова по одному, и увеличиваете счетчик, если попадается слово, в котором первая буква гласная. В конце просто выводите данное количество.
Yandex
Объявления
14.09.2012, 03:48     Организовать ввод слов с клавиатуры в массив
Ответ Создать тему
Опции темы

Текущее время: 13:01. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru