1182 / 467 / 87
Регистрация: 23.06.2009
Сообщений: 6,390
1

самый простой вопрос который мог задать нуб!не получается подсчет слов!!!!!

10.12.2009, 21:58. Показов 1775. Ответов 14
Метки нет (Все метки)

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
int wordCount(string a){
int i,c,n;
c=n=0;
i=1;
while((c=a[i])!='\0'){
    if(c==' ')++n;
i++;
}
return n;
}
int main()
{
string a;
cin>>a;
cout<<wordCount(a);
    system("pause");
        return 0;
}
функция принимает в данном код стринг,и просто считывает слова,считывая пробелы...но у меня всегда возвращается 0
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
10.12.2009, 21:58
Ответы с готовыми решениями:

Самый простой подсчет+
К сожалению так и не смог освоить js. Вопрос такой. Есть у меня три импута текста. В каждом...

Создать простой web сервер который мог бы открывать HTML страницу
Привет всем! Помогите создать простой web сервер который мог бы открывать html страничку! Возьмём...

Самый простой вопрос на сегодня.
Простейшая задача. Я думал справится за пару минут в купе с google, но что-то как-то не срослось =(...

Самый простой вопрос по таблицам
Здравствуйте! Начал создавать базу по реализации товара и тут же возникла проблема. Есть таблица...

14
424 / 228 / 87
Регистрация: 25.03.2009
Сообщений: 744
10.12.2009, 22:08 2
МедведЪ, а не легче введённые слова кидать в vector < string > методом size() получишь количество слов
0
32 / 32 / 7
Регистрация: 26.10.2009
Сообщений: 98
10.12.2009, 22:08 3
cin считывает строку до первого пробела. Используй:
C++
1
getline(cin,a);
0
1182 / 467 / 87
Регистрация: 23.06.2009
Сообщений: 6,390
10.12.2009, 22:11  [ТС] 4
Sayrus89, забыл спасибо
0
424 / 228 / 87
Регистрация: 25.03.2009
Сообщений: 744
10.12.2009, 22:11 5
МедведЪ, а в твоём коде немного ерунда) во первых cin'om ты получишь строку до первого пробела и в string нету нулевого символа на конце
0
1182 / 467 / 87
Регистрация: 23.06.2009
Сообщений: 6,390
10.12.2009, 22:11  [ТС] 6
Андрейка,с вектором не знаком...пока
0
424 / 228 / 87
Регистрация: 25.03.2009
Сообщений: 744
10.12.2009, 22:12 7
МедведЪ, пока
0
1182 / 467 / 87
Регистрация: 23.06.2009
Сообщений: 6,390
10.12.2009, 22:13  [ТС] 8

Не по теме:

Sayrus89, вы случайно в Unreal tournament не играете?:)



Добавлено через 10 секунд
Андрейка,
0
32 / 32 / 7
Регистрация: 26.10.2009
Сообщений: 98
10.12.2009, 22:16 9
Пожалуйста

Кстати, так врядли получится подсчитать количество слов в строке.
Вот, например, листинг программы на паскале, подсчитывающей кол-о слов между первыми двумя запятыми :

Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
uses crt;
 
type TDelimiter = set of Char;
 
var
inText,             {исходный текст}
tmpString : string;     {временная строка}
first,              {позиция первой запятой}
second,             {позиция второй запятой}
TextLength,             {длина текста}
i, 
NumOfWords : integer;       {счетчик слов}
delimiters : TDelimiter;    {разделители}
 
 
begin
clrscr; {очищяем экран}
 
{в переменной delimiters должны храниться символы,
 которые нужно считать разделителями слов}
delimiters := ['.', ':', '!', '?', ';', '(', ')'];
 
NumOfWords := 0;
 
Writeln('***Введите текст:');
Readln(inText);         {считываем текст с клавиатуры}
Writeln('');
 
TextLength := Length(inText);
first := Pos(',', inText);  {находим позиция первой запятой}
if first=0 then         {если запятая не найдена}
   begin
   Writeln('В тексте нет ни одной запятой');
   Writeln('Нажмите клавишу для выхода');
   readkey;
   exit;
   end;
 
{копируем во временную строку часть исходного текста,
 начиная с позиции, стоящей после первой запятой}
tmpString := Copy(inText, first + 1, TextLength - first);
second := Pos(',', tmpString);  {ищем вторую во временной строке вторую запятую}
if second=0 then        {если вторая запятая не найдена}
   begin
   writeln('Вторая запятая не найдена');
   Writeln('Нажмите клавишу для выхода');
   readkey;
   exit;
   end;
 
TextLength := Length(tmpString);
Delete(tmpString, second, TextLength - second + 1);     {обрезаем строку, оставляя только часть,}
                            {находящуюся между запятыми}
 
TextLength := Length(tmpString);            {запоминаем длину текста}
if TextLength=0 then                    {если строка получилась пустая}
   begin
   Writeln('Между запятыми нет текста');
   Writeln('Нажмите клавишу для выхода');
   Readkey;
   exit;
   end;
 
{заменяем все разделители пробелами}
{Это делаем для того, чтобы перед и после слов стояли только пробелы
 и легче можно было бы определить слово, чтобы посчитать их количество }
for i:=1 to TextLength do
    begin
       if tmpString[i] in delimiters then tmpString[i]:=' ';
    end;
 
{подсчитываем количество слов}
{Если i-ый символ пробел, а (i+1)-ый не разделитель и не пробел,
 то увеличиваем счетчик слов на еденицу}
for i:=1 to TextLength do
    begin
       if (tmpString[i]=' ')
          AND NOT(tmpString[i+1]=' ') then inc(NumOfWords);
    end;
 
if NOT(tmpString[1]=' ') then inc(NumOfWords); {если первый символ в строке не пробел, увеличиваем счетчик}
Writeln('***Часть строки, в которой определяем количество слов:');
Writeln(tmpString);
Writeln('');
Writeln('***Количество слов иежду первой и второй запятыми: ',NumOfWords);
readkey;
end.
Добавлено через 1 минуту
В Unreal играл когда-то (и мне очень, кстати, нравилось ) но не через интернет
0
1182 / 467 / 87
Регистрация: 23.06.2009
Сообщений: 6,390
10.12.2009, 22:45  [ТС] 10
Sayrus89, Oo

Добавлено через 1 минуту

Не по теме:

Sayrus89, aaa...я по инету играю там sayus один:)


по теме:
почему не получится?у меня n к инициализован 1....все правильно считает

Добавлено через 26 минут
ладно,еще такой вопрос:
C++
1
    if(c==' ' || c=='\.' || c=='\,')++n;
тут вроде все понятно...
в консоли когда я ввожу hello,world-возвращает 2,правильно
если я ввожу hello world-2-правильно
но если я ввожу hello, world-3 почему?точнее я знаю почему потому что программа увидела пробел и символ запятая,а в условии говорится если ,++ и если пробел ++...
как исправить эту логичексую ошибку?Я думаю нужен еще один цикл,и каждый раз написать break?
0
576 / 570 / 65
Регистрация: 29.01.2009
Сообщений: 1,274
11.12.2009, 02:18 11
МедведЪ, глянь сюда Подсчитать количество слов в тексте
1
1182 / 467 / 87
Регистрация: 23.06.2009
Сообщений: 6,390
11.12.2009, 10:12  [ТС] 12
Gravity, с чаром можно?ЗЫ я не с копма
0
1182 / 467 / 87
Регистрация: 23.06.2009
Сообщений: 6,390
11.12.2009, 16:06  [ТС] 13
Gravity,
C++
1
2
int state;
        state = OUT;
???????????

Добавлено через 21 минуту
народ так что?Какие варианты...я тут вспомнл что в книге говорилось
слово-это пучка символов,разделенные пробелом,запятым и т.д.
как мне решить это ошбику?
самый простой вопрос который мог задать нуб!не получается подсчет слов!!!!!

Добавлено через 1 минуту
Gravity, у тебя в коде define OUT и IN Нетуи нельзя ли просто мой код исправить??
0
424 / 228 / 87
Регистрация: 25.03.2009
Сообщений: 744
11.12.2009, 16:22 14
МедведЪ, заюзать boost::regex - регулярный выражения из библиотеки boost погугли дабы получить полную инфу)
0
1182 / 467 / 87
Регистрация: 23.06.2009
Сообщений: 6,390
11.12.2009, 16:24  [ТС] 15
код можно андрей?
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
11.12.2009, 16:24

Нужен самый простой автокликер (задать координаты и кликать определенное время)
Доброго времени суток, мне очень нужен самый простой автокликер (задать координаты и кликать...

Напишите самый простой калькулятор, который выполняет все 4 функции
Напишите самую простую программу-калькуляр, которая выполнаяет все 4 функции

Нужен такой калькулятор, самый простой код, который только может быть

Написать самый простой антивирусный сканер, который сможет найти вирус, записанный в автозагрузку
Всем привет, пишу практическую работу по информационной безопасности, необходимо написать самый...

Простой вопрос, на который нужен ответ
Здравствуйте, у меня такой вопрос : Я работаю над программой, в ней есть меню, в пункт этого...

Самый самый самый простой пример рекурсии
приведите самый прост пример рекурсии)))void main(int k) { int n=10; k=n; k++; n=k; ...


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

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.