Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 13, средняя оценка - 4.92
AnonymC
1173 / 455 / 28
Регистрация: 23.06.2009
Сообщений: 6,342
Завершенные тесты: 1
#1

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

10.12.2009, 21:58. Просмотров 1583. Ответов 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
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.12.2009, 21:58
Здравствуйте! Я подобрал для вас темы с ответами на вопрос самый простой вопрос который мог задать нуб!не получается подсчет слов!!!!! (C++):

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

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

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

LNK1120: 1 неразрешенных внешних элементов(дада он самый да я нуб) - C++
#include &quot;stdafx.h&quot; #include &lt;iostream&gt; using namespace std; void DemonstrationFunction() { cout &lt;&lt; &quot;In Demonstration \n&quot;; ...

Bat файл, который бы мог компилировать С++ из VS - C++
Добрый день, мне поставлена задача сделать batник который бы при использовании компилировал программу написанную в файле *.cpp и...

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

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

Не по теме:

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



Добавлено через 10 секунд
Андрейка,
0
Sayrus89
31 / 31 / 1
Регистрация: 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
AnonymC
1173 / 455 / 28
Регистрация: 23.06.2009
Сообщений: 6,342
Завершенные тесты: 1
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
Gravity
564 / 558 / 39
Регистрация: 29.01.2009
Сообщений: 1,274
11.12.2009, 02:18 #11
МедведЪ, глянь сюда Подсчитать количество слов в тексте
1
AnonymC
1173 / 455 / 28
Регистрация: 23.06.2009
Сообщений: 6,342
Завершенные тесты: 1
11.12.2009, 10:12  [ТС] #12
Gravity, с чаром можно?ЗЫ я не с копма
0
AnonymC
1173 / 455 / 28
Регистрация: 23.06.2009
Сообщений: 6,342
Завершенные тесты: 1
11.12.2009, 16:06  [ТС] #13
Gravity,
C++
1
2
int state;
        state = OUT;
???????????

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

Добавлено через 1 минуту
Gravity, у тебя в коде define OUT и IN Нетуи нельзя ли просто мой код исправить??
0
Андрейка
420 / 224 / 27
Регистрация: 25.03.2009
Сообщений: 744
11.12.2009, 16:22 #14
МедведЪ, заюзать boost::regex - регулярный выражения из библиотеки boost погугли дабы получить полную инфу)
0
AnonymC
1173 / 455 / 28
Регистрация: 23.06.2009
Сообщений: 6,342
Завершенные тесты: 1
11.12.2009, 16:24  [ТС] #15
код можно андрей?
0
11.12.2009, 16:24
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
11.12.2009, 16:24
Привет! Вот еще темы с ответами:

Создать простой web сервер который мог бы открывать HTML страницу - C++ Builder
Привет всем! Помогите создать простой web сервер который мог бы открывать html страничку! Возьмём для примера самую известную)) VK.COM ...

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

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

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


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

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

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