Ввести строку. Подсчитать количество букв в самом длинном слове - 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 pressEnter, 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 Таким образом, код принимает строку от пользователя, подсчитывает количество символов в самом длинном слове и выводит результат на экран.