|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
26.08.2013, 20:31 | #11 |
Форумчанин
Регистрация: 10.11.2008
Сообщений: 120
|
Ясно переделаю
помог - жми на весы
Последний раз редактировалось Chainik!; 26.08.2013 в 20:41. |
26.08.2013, 20:33 | #12 |
Форумчанин
Регистрация: 10.11.2008
Сообщений: 120
|
???????????
помог - жми на весы
|
26.08.2013, 20:46 | #13 |
Форумчанин
Регистрация: 03.01.2013
Сообщений: 388
|
А если предпоследний символ (s[i]) (перед '\0') - не пробел? Ведь тогда условие не сработает и пропустим слово.ъ, т.к s[i + 1] - не пробел.
|
26.08.2013, 21:14 | #14 |
МегаМодератор
СуперМодератор
Регистрация: 09.11.2010
Сообщений: 7,291
|
Баян баян, (с возвращением) на удаление 1 символа из строки понадобится слишком много ресурсов. На пересобирание строки без лишних символов понадобятся ресурсы и дополнительная память. Зачем их тратить, если задача имеет более простое алгоритмическое решение?
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
|
26.08.2013, 21:18 | #15 |
Форумчанин
Регистрация: 03.01.2013
Сообщений: 388
|
Да, зачем удалять или разбивать строку на токены (мое ошибочное предложение), если можно решить задачу эффективнее? Т.е получение токенов еще более ресурсоемкий процесс.
Думаю, все дальнейшие обсуждения будут только "ходьбой вокруг да около" :-) |
26.08.2013, 21:27 | #16 |
Пользователь
Регистрация: 10.08.2013
Сообщений: 67
|
Раз уж речь про токены завели... В порядке бреда - Bison+Flex(препода можно отправить с инфарктом в госпиталь таким решением). Где-то туториал видел на инглише, там как раз рассматривался пример подсчета слов. Есть даже книжка Flex&Bison - тоже eng от O'Reily. А та самая красная "Книга дракона"(к/ф. Хакеры) даже переведена на великий и могучий.
|
26.08.2013, 21:30 | #17 |
Форумчанин
Регистрация: 10.11.2008
Сообщений: 120
|
Вот переделал:
#include "stdafx.h" #include "iostream" #include "conio.h" using namespace std; int _tmain(int argc, _TCHAR* argv[]) { const int n = 100; char s[n] = " Hello word apple orange"; cout << s; int count = 0; int k = strlen(s), i = 0; while(i < k) { if((s[i] != ' ' && s[i + 1] == ' ') ||(s[i] != ' ' && s[i + 1] == '\0')) count++; i++; } cout << "\n\nKolichestvo slov: " << count; _getch(); return 0; }
помог - жми на весы
Последний раз редактировалось Chainik!; 26.08.2013 в 21:32. |
26.08.2013, 22:33 | #18 |
Форумчанин
Регистрация: 03.01.2013
Сообщений: 388
|
Можно было до вот такого сократить: if (s[i] != ' ' && (s[i + 1] == ' ' || s[i +1] == '\0'))
|
26.08.2013, 22:49 | #19 |
Форумчанин
Регистрация: 10.11.2008
Сообщений: 120
|
Знаки пунктуации:
#include "stdafx.h" #include "iostream" #include "conio.h" using namespace std; const int n = 1000; int word(char *s) { int i, k, count; i = k = count = 0; k = strlen(s); while(i < k) { if((s[i] != ' ' && s[i + 1] == ' ') || (s[i] != ' ' && s[i + 1] == '\0')) count++; i++; } return count; } int _tmain(int argc, _TCHAR* argv[]) { char s[n] = " .. , ! ? Hello,, ,,,,,,, ,, word..! apple orange!", res[n] = ".,!?", str[n]; int k = 0; for(int i = 0; i < strlen(s); i++) { bool b = false; for(int j = 0; j < strlen(res); j++) { if(s[i] == res[j]) b = true; } if(!b) str[k++] = s[i]; } str[k] = NULL; cout << s << "\n\nKolichestvo slov v stroke: " << word(str); _getch(); return 0; }
помог - жми на весы
|
26.08.2013, 23:03 | #20 |
Форумчанин
Регистрация: 03.01.2013
Сообщений: 388
|
Я пример выше приводил: в метод передавалась строка содержащая разделители... Общий вариант для всего
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
подсчитать количество слов в предложении | Sv. | Microsoft Office Excel | 2 | 04.01.2013 00:16 |
Ввести с клавиатуры строку. Посчитать количество слов в строке. Определить, что является разделителем слов. Вывести рез-ть на экра | Газимов | Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM | 3 | 02.03.2012 15:58 |
В предложении подсчитать количество слов. Delphi | King21 | Помощь студентам | 4 | 16.03.2011 14:26 |
Подсчитать количество слов и количество букв | MDSIQ | Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM | 1 | 13.11.2010 16:57 |
подсчитать количество символов слов и предложений | nev | Помощь студентам | 4 | 09.06.2007 21:22 |