В символьной строке сосчитать число слов, состоящих из более чем N букв - C (СИ)
Формулировка задачи:
Помогите, пожалуйста, составить программу.
Вот текст задания: В символьной строке сосчитать число слов, состоящих из более чем N букв.
Решение задачи: «В символьной строке сосчитать число слов, состоящих из более чем N букв»
textual
Листинг программы
#include <stdio.h> #include <string.h> #include <stdlib.h> void main () { char arr[1000]; int i,n,k=0,t=0; printf("Enter the text:\n"); gets(arr); printf("Enter the N:\n"); scanf("%d",&n); for(i = 0; i < strlen(arr); i++) { t++; if (arr[i] == ' ' || arr[i] == ',' || arr[i] == '.' ||arr[i] == ':' || arr[i] == '-') // здесь можеш добавить еще знаки которыми будеш отделять слова { if (t-1 > n) { k++; } t = 0; } } printf("Answer: %d\n",k); }
Объяснение кода листинга программы
В этом коде:
- Объявлены переменные:
arr
- массив символов для хранения введенной строки;i
,n
,k=0
,t=0
- счетчики для работы со строкой.
- Пользователю предлагается ввести строку и число N:
printf(
Enter the text:\n);
- вывод сообщения с просьбой ввести текст;gets(arr);
- ввод строки с помощью функцииgets()
.printf(
Enter the N:\n);
- вывод сообщения с просьбой ввести число N;scanf(
%d,&n);
- ввод числа N с помощью функцииscanf()
.
- Происходит обработка введенной строки:
for(i = 0; i < strlen(arr); i++)
- цикл по всем символам строки;t++
- увеличение счетчика слов;if (arr[i] == ' ' || arr[i] == ',' || arr[i] == '.' ||arr[i] == ':' || arr[i] == '-')
- проверка, является ли текущий символ знаком, отделяющим слова;if (t-1 > n)
- проверка, превышает ли текущее слово длину введенного числа N;if (t-1 > n)
{k++;
- увеличение счетчика слов, длина которых превышает N;t = 0;
- сброс счетчика слов.
- Выводится результат:
printf(
Answer: %d\n,k);
- вывод результата на экран.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д