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

Подсчитать количество слов в тексте - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Access Violation при работе с очередью http://www.cyberforum.ru/cpp-beginners/thread813569.html
Здравствуйте. Есть такая проблема. Необходимо создать очередь массивов и соответственно работать с ней. В результате долгих мучений родила вот такой класс: class Queue { public: static const int SIZE = 10; unsigned char queueM; unsigned int head; unsigned int tail; bool QueueIsFull; bool QueueIsEmpty;
C++ Class matrix Организовать класс матрица, содержащий методы вывода матрицы в общепринятом виде, нахождения транспонированной матрицы, и определитея матрицы. P.S. Помогите начинающему , буду очень благодарен))) http://www.cyberforum.ru/cpp-beginners/thread813555.html
C++ Не могу понять где ошибка!
int _tmain(int argc, _TCHAR* argv) { int W , Color , i,j, k; rebro Reb; setlocale(LC_ALL, "");//вывод кирилицы не кракозябрами cout<<"Введите м-у W : "; cin>>W; for ( k = 0; k < N-1; k ++ ) { for ( i = 0; i < N-1; i ++ )
Надо указателю на long int присвоить значение указателя на char C++
//есть указатель unsigned char* p_to_char = somthing; //и указатель unsigned long int* p_to_int; //надо p_to_int присвоить значение p_to_char; p_to_int = p_to_char
C++ Считывание символов с файла http://www.cyberforum.ru/cpp-beginners/thread813540.html
Нужна программ которая считывала бы буквы с файла и выводила их количество. Попробовал сделать. Но мне вместо суммы выдает на каждый символ 1 значение. И выдает эти символы в ряд. #include <stdio.h> #include <stdlib.h> int main() { FILE *fi; int ch; if(fi=fopen("File.txt","r")){ while((ch= getc(fi))!=EOF)
C++ Бинарный поиск последнего нужного нам элемента while (first < last) { mid = (first + last) >> 1; if (a >= x) { last = mid; } else { first = mid + 1; подробнее

Показать сообщение отдельно
SummerRain
 Аватар для SummerRain
325 / 324 / 17
Регистрация: 16.12.2012
Сообщений: 544
21.03.2013, 10:48     Подсчитать количество слов в тексте
C++
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
#include <iostream>
#include <string>
 
int getNumofWords(const std::string& s) {
    typedef std::string::size_type str_size;
    str_size i = 0;
    int count = 0;
    while (i != s.size()) {    // проходим с начала до конца строки
        while (isspace(s[i]) && i != s.size()) // если это пробел и не конец строки
            ++i;              // шаг вперёд, выходим из цикла когда нашли не пробел
        str_size j = i;          // т.е. позицию первой буквы записываем в j
        while (!isspace(s[j]) && j != s.size())  // ещё один цикл, но уже: если это НЕ пробел и не конец строки
            ++j;          // шаг вперёд
        if (i != j) {       // если позиция первой буквы не равна последней
            //if (s[i] == s[j - 1]) // это строка лишняя
            ++count;          // то увеличиваем счётчик слов на 1
            i = j;            // теперь i равно позиции последней буквы найденного слова
        }
    }
    return count;
}
 
int main()
{
    std::string str;
    std::getline(std::cin, str);  // ввод строки  
    std::cout << "Number of words: " << getNumofWords(str);   // вызов фукции для подсчёт количества слов
    system("PAUSE>0");
    return 0;
}
Добавлено через 3 минуты
если конечно заведомо известно, что в строке не следует больше одного пробела подряд, то можно просто подсчитать их количество, и прибавить 1.
 
Текущее время: 21:24. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru