| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Общие вопросы > Сосчитать кол-во слов |
| Автор: Weman 29.11.2005, 20:18 | ||
| Помогите с задачей (код желательно на Си): "В символьной строке сосчитать число слов, содержащих гласные буквы" Заранее всем благодарен!!!
|
| Автор: _hunter 29.11.2005, 20:31 |
| не вопрос -- поможем. что именно тебе не понятно? |
| Автор: Weman 30.11.2005, 10:29 |
| Я не знаю как написать сам цикл обработки строки. У меня в книге по Си про строковые массивы очень мало написано. Кто подскажет хорошую ссылочку по этой теме? |
| Автор: azesmcar 30.11.2005, 10:43 |
| Слово это то что разделено пробелом. Т.е. разбиваешь строку с разделителем " ", потом начинаешь считать циклом...строку разбивай на слова фунцкией strtok. Как делать смотри здесь www.cplusplus.com/ref/cstring/strtok.html потом вызываешь свою функцию например glasniy_simvol_exists(const char *p) которая возвращяет true если гласные в слове есть и false соотвественно если их нет.. И считаешь..вроде все остальное дело техники |
| Автор: Weman 30.11.2005, 19:59 |
| Попробую сделать. ОГРОМНОЕ СПАСИБО!!! |
| Автор: azesmcar 1.12.2005, 11:01 |
| Будут вопросы стучи в ICQ. 173549200 |
| Автор: Weman 1.12.2005, 20:21 |
| У меня вопрос. Можно ли разбить строку также как функцией strtok, только с помощью цикла? Если можно, то выложите пожалуйста код на Си. |
| Автор: Aleksandor 1.12.2005, 21:03 | ||
Вот, выложил. Но не проверял
|
| Автор: blackofe 1.12.2005, 21:18 |
| Aleksandor не по существу вопроса: 'й' - не гласная буква. но зато к гласным относятся еще 'ы' и 'ё'. |
| Автор: Aleksandor 1.12.2005, 21:33 |
| А у меня на клаве нет ё (вставил из буфера |
| Автор: Weman 3.12.2005, 07:51 |
| Спасибо. Попробую этот вариант. |
| Автор: Doc_d0s 3.12.2005, 16:15 |
| число пробелов(разделителей)+1 |
| Автор: Weman 3.12.2005, 21:42 |
| А можно ли код программы, который написал Aleksandor написать какнибудь попроще для новичков и с объяснением назначения каждой вызываемой функции? Помогите новичку разобраться. Спасибо. |
| Автор: nikitao 3.12.2005, 21:51 |
| Weman.может перечислишь,какие ф-ции не понятны,а то код в себе не использует никаких сверх секретных ф-ций(если конечно число таких ф-ций не стримится к бесконечности),а после этого и как прога работает станет понятно |
| Автор: Weman 4.12.2005, 12:42 |
| 1)Возможно ли написать эту прогу без использования указателей? 2)Можно ли написать код без функции strtok(); 3)Что такое NULL, strlen(szLine) 4)Какого szLine типа? 5)Можно ли сделать, чтобы программа искала английские буквы, а не русские? |
| Автор: Fixin 4.12.2005, 14:13 | ||
Вот, совсем по-детски:
|
| Автор: blackofe 5.12.2005, 21:33 | ||
а если встречаются несколько пробелов подряд? у американцев, к примеру, дурацкая практика - в конце предложения после точки ставить два пробела. или наоборот - слова разделены только запятой без пробела? |
| Автор: _hunter 6.12.2005, 11:50 |
| тогда предварительно пройдись по тексту ( возможно несколько раз ) и удали все двойные пробелы |
| Автор: nikitao 6.12.2005, 12:09 |
| Так а если там смайлики между словами написаны.Решение через пробелы -это схалявить.Тут как-то иначе.Разделитялями являются все символы кроме букв латинского и русского алфавита т е это не только пробелы,точки,запятые...Я бы сделал так: Посимвольно шел по тексту,если встречается знак-разделитель,а предыдущий зна -это знак-неразделитель(для этого надо переменную типа bool обьявить),то увеличеваем счетчик на один.Так до канца.При этои символ '\0' будем тоже считать разделителем.Проблем как всегда в кодировке.Под латиницу писать от силы 20 минут(ИМХО),хотя это может только казаться. |
| Автор: TeeT 6.12.2005, 17:58 |
| Без указателей нельзя, а вот без функции strtok можно, с помощью sscanf, только вот труднее получится, Description Null pointer constant that is compatible with any data object pointer. It is not compatible with function pointers. When a pointer is equivalent to NULL it is guaranteed not to point to any data object defined within the program. А в принципе на Си все можно сделать |
| Автор: nikitao 6.12.2005, 18:14 | ||
А кто сказал ,что с NULL('\0') какие-то проблемы??? |
| Автор: blackofe 6.12.2005, 19:08 | ||||
ну, какие же проблемы в кодировке? пользуйте locale, и будет вам щастье! ;) Добавлено @ 19:10
а еще подровнять абзацы, проверить орфографию и раскрасть шрифты всеми цветами радуги. сорри. |