Нужно найти количество слов в каждой строке - C (СИ)
Формулировка задачи:
Помогите решить, пожалуйста.Максимальное число символов в строке – 80. Во втором задании максимальное число строк – 6. Истинное число строк определяется пользователем. Нужно найти количество слов в каждой строке.
Решение задачи: «Нужно найти количество слов в каждой строке»
textual
Листинг программы
#include <stdio.h>
#include <string.h>
#define SIZE 80
#define DELIM " ,.\t\n"
int main()
{
char str[SIZE], *word;
int counter = 0, n, i;
printf("Enter number of lines: ");
scanf("%d", &n);
getchar();
for (i = 0; i < n; i++)
{
printf("Enter line: ");
fgets(str, SIZE, stdin);
counter = 0;
for (word = strtok(str, DELIM); word; word = strtok(NULL, DELIM))
counter++;
printf("Words: %d\n", counter);
}
return 0;
}
Объяснение кода листинга программы
- Подключение необходимых библиотек: stdio.h и string.h
- Объявление констант: SIZE (80) - размер строки в символах, DELIM (
, .\t\n) - разделитель слов в строке - Объявление переменных: char str[SIZE] - строка для ввода, *word - указатель на слово в строке, int counter - счетчик слов, n - количество строк, i - номер текущей строки
- Сбор данных: с помощью scanf() пользователь вводит количество строк, затем с помощью fgets() вводит строки
- Обработка каждой строки: с помощью цикла for перебираются все строки, внутри которого происходит обработка каждой строки с помощью функции strtok(). Эта функция разбивает строку на слова и сохраняет указатель на каждое слово. Каждое слово увеличивает счетчик words.
- Вывод результата: с помощью printf() выводится количество слов в каждой строке.
- Конец программы: return 0