Найти в предложениях самое длинное слово, и вывести предложение с этим словом большими буквами - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Как программу для следующей задачи: Ввести несколько предложений, найти в этих предложениях самое длинное слово и вывести предложение с этим словом на экран большими буквами.

Решение задачи: «Найти в предложениях самое длинное слово, и вывести предложение с этим словом большими буквами»

textual
Листинг программы
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <conio.h>
#include <ctype.h>
 
#define MAXLINE 100
int findlword(char *);
 
main()
{
    int wlen, maxwlen = 0;
    char line[MAXLINE], *p;
 
    puts("Enter strings:");
    while(gets(line) != NULL)
       if((wlen = findlword(line)) > maxwlen) {
          maxwlen = wlen;
          p = (char *)malloc(strlen(line)+1);
          strcpy(p, line);
       }
    printf("\nResult: ");
    while(*p)
       printf("%c", toupper(*p++));
    getch();
    return 0;
}
 
/* поиск самого длинного слова в строке */
int findlword(char *s)
{
    int len, maxlen = 0;
    char word[MAXLINE];
    
    while(sscanf(s, "%s", word) != EOF) {
       if((len = strlen(word)) > maxlen)
          maxlen = len;
       s += len;
    }
    return maxlen;
}

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

  1. Программа находит самое длинное слово в строке.
  2. Используются функции: gets() - получает строку ввода, пока не будет введен символ новой строки. findlword() - ищет самое длинное слово в строке. *sscanf() - парсит строку по формату и записывает результаты в переменные.
  3. Объявлены следующие переменные: wlen - хранит длину найденного слова. maxwlen - хранит максимальную длину слова. line - массив для хранения строки ввода. p - указывает на текущий символ в строке. *word - массив для хранения найденного слова.
  4. В функции main() происходит следующее: Программа запрашивает строку до тех пор, пока пользователь не введет пустую строку. Находит самое длинное слово в строке. Если длина найденного слова больше максимальной, то обновляет максимальную длину и выделяет новую память для хранения строки. Выводит результат в верхнем регистре.
  5. В функции findlword() происходит следующее: Программа ищет слова в строке, пока не встретит символ новой строки. Если длина найденного слова больше максимальной, то обновляет максимальную длину.
  6. Программа завершается, когда пользователь нажимает любую клавишу.

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


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

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

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