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

Нужно посчитать количество слов в тексте - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 15, средняя оценка - 4.87
Shevva
 Аватар для Shevva
17 / 17 / 0
Регистрация: 13.09.2009
Сообщений: 140
08.02.2010, 20:52     Нужно посчитать количество слов в тексте #1
Нужно посчитать количество слов в тексте, подкииньте, кто знает какие-то идеи.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Genius Ignat
1233 / 771 / 44
Регистрация: 16.09.2009
Сообщений: 2,014
08.02.2010, 21:01     Нужно посчитать количество слов в тексте #2
Это просто сейчас усё будет...

Добавлено через 6 минут
Вот такая идея.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <stdio.h>
#include <conio.h>
#include <string.h>
 
#define S_BUF 100
void main(){
char str[S_BUF];
printf("input text <100 symbols\t");
gets(str);
int countW = 1;   //êîëè÷åñòâî ñëîâ
unsigned int i;
for(i=0;i<strlen(str);i++)if(str[i]==' ')countW ++;
//Âûâîäèì êîëè÷åñòâî ñëîâ
printf("words\t");
printf("%d",countW);
printf("\n");
 
 
getch();
return;
}
Shevva
 Аватар для Shevva
17 / 17 / 0
Регистрация: 13.09.2009
Сообщений: 140
08.02.2010, 21:04  [ТС]     Нужно посчитать количество слов в тексте #3
эт ты на каком компиляторе написал?
Genius Ignat
1233 / 771 / 44
Регистрация: 16.09.2009
Сообщений: 2,014
08.02.2010, 21:05     Нужно посчитать количество слов в тексте #4
Visual C++ 6.0
Shevva
 Аватар для Shevva
17 / 17 / 0
Регистрация: 13.09.2009
Сообщений: 140
08.02.2010, 21:07  [ТС]     Нужно посчитать количество слов в тексте #5
Можешь пожалуйста кратко объяснить идею проги, а то я не совсем её понимаю
Genius Ignat
1233 / 771 / 44
Регистрация: 16.09.2009
Сообщений: 2,014
08.02.2010, 21:12     Нужно посчитать количество слов в тексте #6
Вводим строку допустим:
Счетчик слов имеет значение 1, как минимум одно слов в строке точно есть.
"привет Shevva."
Далее в цикле просматриваем всю строку:
Если обнаруживаем пробел тогда увеличиваем счётчик: так как далее может следовать ещё слово.

strlen(str) - определяет позицию: '\0' - символа конца строки.
Shevva
 Аватар для Shevva
17 / 17 / 0
Регистрация: 13.09.2009
Сообщений: 140
08.02.2010, 21:15  [ТС]     Нужно посчитать количество слов в тексте #7
Цитата Сообщение от Genius Ignat Посмотреть сообщение
#define S_BUF 100
А что означает эта строчка?
Genius Ignat
1233 / 771 / 44
Регистрация: 16.09.2009
Сообщений: 2,014
08.02.2010, 21:18     Нужно посчитать количество слов в тексте #8
Shevva:
Совет не делай в строке более одного пробела между словами.
Если сделать более одного пробела между словами логика, не сработает.
Но я могу поправить ситуацию если хочешь.

Добавлено через 2 минуты
#define S_BUF 100 - макроопределение^ где написано S_BUF там препроцессор поставит 100
char str[S_BUF]; //будет записано так char str[100];

S_BUF - можно сказать что это размер массива.
Shevva
 Аватар для Shevva
17 / 17 / 0
Регистрация: 13.09.2009
Сообщений: 140
08.02.2010, 21:21  [ТС]     Нужно посчитать количество слов в тексте #9
НЕ это ничё, ток когда я поставил запятую, прога не посчитала чёт как надо.

Добавлено через 2 минуты
то есть
Цитата Сообщение от Genius Ignat Посмотреть сообщение
#define S_BUF 100
и
Цитата Сообщение от Genius Ignat Посмотреть сообщение
char str[S_BUF];
можна переписать, как
C++
1
 char str[100]
?
Genius Ignat
1233 / 771 / 44
Регистрация: 16.09.2009
Сообщений: 2,014
08.02.2010, 21:21     Нужно посчитать количество слов в тексте #10
if(str[i]==' '||str[i]==',') - расширь логику, союзами или: для других знаков препинания.
Shevva
 Аватар для Shevva
17 / 17 / 0
Регистрация: 13.09.2009
Сообщений: 140
08.02.2010, 21:23  [ТС]     Нужно посчитать количество слов в тексте #11
Спасибо, выручил.
Genius Ignat
1233 / 771 / 44
Регистрация: 16.09.2009
Сообщений: 2,014
08.02.2010, 21:26     Нужно посчитать количество слов в тексте #12
char str[100]; //это тоже можно, но макрос для удобства.
Так как, если ты поменяешь значение в макросе,
везде в программе где написано S_BUF будет подставлен нужный размер массива.
Макрос для удобства.
Nameless One
Эксперт С++
 Аватар для Nameless One
5755 / 3404 / 255
Регистрация: 08.02.2010
Сообщений: 7,393
09.02.2010, 12:57     Нужно посчитать количество слов в тексте #13
Цитата Сообщение от Genius Ignat Посмотреть сообщение
#define S_BUF 100 - макроопределение^ где написано S_BUF там препроцессор поставит 100
char str[S_BUF]; //будет записано так char str[100];

S_BUF - можно сказать что это размер массива.
Если не ошибаюсь, таким образом определялись константы для языка C, пока не появилось ключевое слово const в языке C++. Т.е., можно сделать так:
C++
1
2
const int size=100;
char str[size];
...Хотя разницы особой я не вижу
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
09.02.2010, 19:02     Нужно посчитать количество слов в тексте
Еще ссылки по теме:

C++ Посчитать сколько в тексте слов с 1, 2 и 3 слогами
Определить количество слов в заданном тексте и количество символов в каждом слове C++
Посчитать количество слов "что" в заданном тексте C++

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

Или воспользуйтесь поиском по форуму:
Genius Ignat
1233 / 771 / 44
Регистрация: 16.09.2009
Сообщений: 2,014
09.02.2010, 19:02     Нужно посчитать количество слов в тексте #14
Nameless One:
Разница есть
напиши так:
#define MAX 100
#define MAX 200
//Ошибки не будет но будет походу переопределение макроса.
А если так
const int MAX = 100;
const int MAX = 200;
Компилятор точно заарёт что это переопределение.
Yandex
Объявления
09.02.2010, 19:02     Нужно посчитать количество слов в тексте
Ответ Создать тему
Опции темы

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