|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
21.03.2012, 23:19 | #1 |
Пользователь
Регистрация: 11.10.2011
Сообщений: 33
|
символьный ввод-вывод
Имеется такое задание:
Код:
Код:
|
21.03.2012, 23:50 | #2 |
Пользователь
Регистрация: 21.03.2012
Сообщений: 14
|
gets(str) считывает всю строку в char *str
|
22.03.2012, 00:18 | #3 |
Пользователь
Регистрация: 11.10.2011
Сообщений: 33
|
спасибо. то есть получается нужно создать символьный массив а вместо getchar поставить gets и все будет ок?
|
22.03.2012, 16:18 | #4 |
Старожил
Регистрация: 02.01.2011
Сообщений: 3,327
|
vrtp, у вас в программе ошибка!
Вместо: Код:
Код:
Не понятно... То есть вот это два слова? Пример: two,word (без пробела, но через знак препинания). Последний раз редактировалось 8Observer8; 22.03.2012 в 16:24. |
22.03.2012, 17:34 | #5 |
Пользователь
Регистрация: 11.10.2011
Сообщений: 33
|
Да, с кавычками немного зафэйлился. Да ваш пример показывает два слова, но еще есть цифры, которые как бы не относятся к словам, но главное, чтобы программа начала находить слова, а там уж доработаю
|
22.03.2012, 18:06 | #6 |
Старожил
Регистрация: 02.01.2011
Сообщений: 3,327
|
То есть, вот это: win32 - не слово? Если в слове есть цифра, то это не слово?
|
23.03.2012, 18:27 | #7 |
Пользователь
Регистрация: 11.10.2011
Сообщений: 33
|
нет это слово, а вот win 32 уже нет, ну или 1245 не слово, ну это как я понимаю задачу
|
24.03.2012, 09:42 | #8 |
Старожил
Регистрация: 02.01.2011
Сообщений: 3,327
|
vrtp, вы уточните, насколько я понимаю, словом можно считать последовательность символов без разделительных символов пустого пространства (пробелов, табуляций, символов перевода строк).
Если всё-таки словом считать любую последовательность символов, которая начинается с "не цифры", то нужно использовать функцию isdigit(c). Эта функция анализирует символ (int либо unsigned char, приведённый к int) и возвращает ненулевое значение (истина), если символ - цифра. isdigit(c) --> http://cplusplus.com/reference/clibrary/cctype/isdigit/ Проблемы возникнут, если вы попытаетесь работать с кириллицей (isdigit(c) - не умеет с ней работать). Я сам не знаю, как решить. Может кто подскажет, как анализировать кириллицу (на простом примере или ссылкой)? Последний раз редактировалось 8Observer8; 24.03.2012 в 09:45. |
28.03.2012, 19:52 | #9 |
Пользователь
Регистрация: 11.10.2011
Сообщений: 33
|
Ну ладно, упростим задачу. Словом считается набор символов, пофиг каких. Тогда по программе, которую я привел из КР. Сам алгоритм работает так: мы забиваем кучу символов, разделенные пробелами, например. Функцией getchar проходим через каждый символ и если встречаем пробел, ну или что-нить еще, то инкрементируем и дальше продолжаем идти, таким образом считаем слова. Или как-то иначе работает? Я просто пока понять не могу getchar забирает всю строку, которую я ввел или только один символ? Да и если все правильно почему при запуске программы консоль просто висит и заканчивать программу не хочет?
|
29.03.2012, 17:12 | #10 | |
Старожил
Регистрация: 02.01.2011
Сообщений: 3,327
|
А какая программа у вас висит. Покажите код.
А что значит: Цитата:
Чтобы понять, как работает программа, лучше всего её в пошаговом режиме выполнить. Последний раз редактировалось 8Observer8; 29.03.2012 в 17:19. |
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Ввод-вывод | Granus | Общие вопросы C/C++ | 1 | 29.05.2011 15:15 |
[C++] Ввод - вывод | AquaticSoul | Помощь студентам | 0 | 18.04.2010 20:02 |
Ввод-Вывод | Joker_35815 | Помощь студентам | 2 | 30.03.2010 19:22 |
Ввод-вывод | Sparky | Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM | 3 | 04.10.2009 13:15 |
Ввод и вывод | Mihael-Vlz | Паскаль, Turbo Pascal, PascalABC.NET | 3 | 19.01.2009 18:00 |