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

Задачи и их решение / Посчитать количество слов в строке

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

Для ввода строки нельзя использовать функцию 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
24
25
26
27
28
#include <iostream>
using namespace std;
int main()
{
  char s[80];
  int slovo, count = 0;
  system("chcp 1251");
  system("cls");
  cout << "Введите строку: " << endl;
  cin.get(s, 80);
  int i = 0;
  while (s[i] == ' ' && s[i] != '\0')
    i++;
  slovo = 0;
  while (s[i] != '\0') {
    if (s[i] != ' ' && slovo == 0)
    {
      slovo = 1;
      count++;
    }
    else if (s[i] == ' ')
      slovo = 0;
    i++;
  }
  cout << "Количество слов в строке " << count;
  cin.get(); cin.get();
  return 0;
}

 
Результат выполнения
Количество слов в строке


Назад: Задачи и их решение

Комментариев к записи: 4


    • Елена Вставская

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



Добавить комментарий

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