Ввести строку. Подсчитать количество букв в самом длинном слове - C (СИ)
Формулировка задачи:
Ввести строку. Подсчитать количество букв в самом длинном слове
(Не на С++, а именно на С)
Помогите составить программу, пожалуйста
Решение задачи: «Ввести строку. Подсчитать количество букв в самом длинном слове»
textual
Листинг программы
- #include "stdio.h"
- #include "windows.h"
- #pragma warning(disable:4996)
- void main(void)
- {
- /*
- This tutorial program for language C, written with use VS2015
- For display correct russian characters required use windows.h, pragma directive shut off error compiler
- */
- SetConsoleCP(1251);
- SetConsoleOutputCP(1251);
- char strin[1024];
- char stop = '\0';//end of string
- char x;
- int result = 0;
- int i = 0;
- int count = 0;
- //printf("Input string and press "Enter", max size 1024 symbols\n");
- printf("Введите строку и нажмите "Enter", максимальный размер строки 1024 символа\n");
- gets(strin);
- x = strin[i];
- while (x != stop)
- {
- if (x != ' ' && x != ' ') // x not space and x not tab
- count++;
- else
- {
- if (count > result)
- result = count;
- count = 0;
- }
- i++;
- x = strin[i];
- }
- if (count > result)
- result = count;
- //printf("The longest word has %d letters\n",result);
- printf("Самое длинное слово содержит %d букв(ы)\n",result);
- system("pause");
- }
Объяснение кода листинга программы
В этом коде:
- #include
stdio.h
, #includewindows.h
, #pragma warning(disable:4996) - подключают необходимые для работы функции и библиотеки - void main(void) - объявляет функцию main, которая является точкой входа в программу
- SetConsoleCP(1251);, SetConsoleOutputCP(1251); - устанавливают кодировку консоли для корректного отображения русских символов
- char strin[1024];, char stop = '\0';, char x;, int result = 0;, int i = 0;, int count = 0; - объявляют переменные для работы со строкой
- printf(
Input string and press
Enter, max size 1024 symbols\n
);, printf(Введите строку и нажмите
Enter, максимальный размер строки 1024 символа\n
); - выводят приглашение для ввода строки - gets(strin); - считывают строку из консоли
- x = strin[i]; - инициализируют переменную x первым символом строки
- while (x != stop) - организуют цикл по всем символам строки, кроме символа конца строки
- if (x != ' ' && x != ' ') - проверяют, является ли текущий символ пробелом или табуляцией
- if (count > result), result = count; - обновляют значение результата, если текущий символ встречается в строке больше раз, чем самый длинный ранее найденный слова
- count = 0; - сбрасывают счетчик количества символов для поиска нового слова
- i++;, x = strin[i]; - переходят к следующему символу строки
- if (count > result), result = count; - обновляют значение результата, если текущий символ встречается в строке больше раз, чем самый длинный ранее найденный слова
- printf(
Самое длинное слово содержит %d букв(ы)\n
,result); - выводят результат на экран - system(
pause
); - приостанавливают выполнение программы до нажатия клавиши Enter Таким образом, код принимает строку от пользователя, подсчитывает количество символов в самом длинном слове и выводит результат на экран.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д