Ввести строку. Подсчитать количество букв в самом длинном слове - 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");
}

Объяснение кода листинга программы

В этом коде:

  1. #include stdio.h, #include windows.h, #pragma warning(disable:4996) - подключают необходимые для работы функции и библиотеки
  2. void main(void) - объявляет функцию main, которая является точкой входа в программу
  3. SetConsoleCP(1251);, SetConsoleOutputCP(1251); - устанавливают кодировку консоли для корректного отображения русских символов
  4. char strin[1024];, char stop = '\0';, char x;, int result = 0;, int i = 0;, int count = 0; - объявляют переменные для работы со строкой
  5. printf(Input string and pressEnter, max size 1024 symbols\n);, printf(Введите строку и нажмитеEnter, максимальный размер строки 1024 символа\n); - выводят приглашение для ввода строки
  6. gets(strin); - считывают строку из консоли
  7. x = strin[i]; - инициализируют переменную x первым символом строки
  8. while (x != stop) - организуют цикл по всем символам строки, кроме символа конца строки
  9. if (x != ' ' && x != '  ') - проверяют, является ли текущий символ пробелом или табуляцией
  10. if (count > result), result = count; - обновляют значение результата, если текущий символ встречается в строке больше раз, чем самый длинный ранее найденный слова
  11. count = 0; - сбрасывают счетчик количества символов для поиска нового слова
  12. i++;, x = strin[i]; - переходят к следующему символу строки
  13. if (count > result), result = count; - обновляют значение результата, если текущий символ встречается в строке больше раз, чем самый длинный ранее найденный слова
  14. printf(Самое длинное слово содержит %d букв(ы)\n,result); - выводят результат на экран
  15. system(pause); - приостанавливают выполнение программы до нажатия клавиши Enter Таким образом, код принимает строку от пользователя, подсчитывает количество символов в самом длинном слове и выводит результат на экран.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

8   голосов , оценка 3.75 из 5
Похожие ответы