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

Массив символов (Подсчитать количество слов в строке, при условии, что в качестве разделителя слов используется один или несколько пробелов) - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Чтение/анализ строки текста http://www.cyberforum.ru/cpp-beginners/thread788958.html
Уважаемые господа, помогите советом. Нужно строку текста (из четного кол-ва символов) разбить в на фрагменты по два символа (задать программу для чтения строки). Как реализовать подобное?...
C++ Работа с памятью Задали программу написать которая удаляет слова с одинаковым количеством гласных и согласных букв. Слова вводятся через пробел, около 4 штук, а потом выводятся оставшиеся. Проблема в том, что иногда... http://www.cyberforum.ru/cpp-beginners/thread788955.html
C++ Дописать программу (Заданы два человека – p и q. Ответить, являются ли они родственниками)
Доброго времени суток! Заданы два человека – p и q. Ответить, являются ли они родственниками. (В программе должны быть заданы два массива натуральных чисел mother и father, такие, что mother –...
C++ Генерирование случайных чисел и выборка значения из этих чисел
Здравствуйте, помогите решить задачку. Нужно случайным образом сгенерировать числа от 0..9, 100 раз. Затем из генерированных чисел пользователь должен выбрать число, и в программе должен быть...
C++ Программа, определяющая для заданного целочисленного объекта определить количество ведущих единиц старшего его байта http://www.cyberforum.ru/cpp-beginners/thread788934.html
Здравствуйте, помогите, пожалуйста, выполнить задачу. Нужна программа, позволяющая для заданного целочисленного объекта (int) определить количество ведущих единиц младшего его байта. И, если кто...
C++ Вычислить значение выражения #include <stdio.h> #include <conio.h> #include <math.h> int main() { printf("\nLaboratornaya rabota # 1"); printf("\nVariant # 5"); printf("\nIS-11-2"); printf("\nVasya Pupkin\n"); подробнее

Показать сообщение отдельно
SummerRain
326 / 325 / 17
Регистрация: 16.12.2012
Сообщений: 544
25.03.2013, 12:59
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
#include <iostream>
#include <string>
 
int getNumofWords(const std::string& s) {
    typedef std::string::size_type str_size;
    str_size i = 0;      // устанавливаем индекс на 0
    int count = 0;   // счётчик слов
    while (i != s.size()) {   // и пробегаемся по строке до конца
        while (isspace(s[i]) && i != s.size())   // пока элемент строки пробел идём дальше
            ++i;
        str_size j = i;    // дошли до первого не пробела, т.е. i - индекс первой буквы слова
        while (!isspace(s[j]) && j != s.size()) // теперь пока элемент строки НЕ пробел идём дальше
            ++j;          // а j - индекс элемента, следующего за последней буквой
        if (i != j) {  // и если эти индексы не равны, то значит мы нашли слово, увеличиваем счётчик
            ++count;
            i = j;          // и приравниваем индекс i к j 
        }
    }
    return count; // возвращаем количество слов
}
int main()
{
    std::string str;
    std::getline(std::cin, str);    
    std::cout << getNumofWords(str);
    system("PAUSE");
    return 0;
}
P.S. а почему вы так запоздало реагируете? Медленный интернет?
1
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru