Посчитать количество слов в строке

Посчитать количество слов в строке

Задача Посчитать количество слов в строке. Слова могут разделяться одним или несколькими пробелами.

Для ввода строки нельзя использовать функцию cin в данном случае, поскольку эта функция осуществляет ввод строки до пробела или перевода строки. Поэтому воспользуемся методом get функции cin:

 
cin.get(УказательНаСтроку, МаксимальноеЧислоСимволов);

Условием окончания строки является символ с кодом равным 0 (нуль-символ, ‘\0’). После ввода строки организуем цикл по элементам строки до ее окончания. Перед циклом проверяем, что строка не начинается с пробела.

Условием определения следующего слова в строке является наличие какого-то символа после пробела (кроме завершающего нуль-символа). Именно это условие увеличивает счетчик count на 1.

Реализация на C++

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <iostream>
using namespace std;
int main()
{
    char s[80];
    int count = 0;
    system("chcp 1251");
    system("cls");
    cout << "Введите строку: " << endl;
    cin.get(s, 80);
    if ((s[0] != ' ') && (s[0] != '\0'))
        count = 1;
    int i = 0;
    while (s[i] != '\0')
    {
        if ((s[i] == ' ') && ((s[i + 1] != ' ') && (s[i+1]!='\0')))
            count++;
        i++;
    }
    cout << "Количество слов в строке " << count;
    cin.get(); cin.get();
    return 0;
}

Результат выполнения

6 комментариев к “Посчитать количество слов в строке”

  1. Дмитрий

    Здраствуйте, помогите пожалуйста.Как написать алгоритм чтобы из введённого предложения он считал количество символов первого слова и последнего?

    1. Елена Вставская

      Слова в строке разделяются пробелами. Последовательность символов до первого пробела — это первое слово. Последовательность символов с конца до первого (с конца) пробела — последнее слово.

  2. Владислав

    А как сделать так, чтобы программа подсчитывала количество разных слов в строке. Если например, мы вводим строку: МАМА МАМА МАМА, то нужно чтоб это считало как 1 слово, а не 3. Помогите, пожалуйста.

    1. Елена Вставская

      При вводе строки пользователь нажимает «ENTER». Назначение в конце программы вызова функции cin.get() — задержать закрытие консоли. Но первая функция cin.get() считывает «ENTER», нажатый пользователем после ввода строки, за собственный ввод. В результате если cin.get() будет использован однократно, консоль закроется.
      Иными словами: если программа предусматривает ввод с клавиатуры (в любом количестве), в конце для удержания консоли необходимо использование двукратного вызова функции cin.get().
      Если программа содержит только вывод, в конце достаточно одного вызова cin.get().

Оставьте комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Прокрутить вверх