Найти самое короткое слово в предложении - C (СИ)

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

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

Самое короткое слово в предложении (Предложение - последовательность слов, разделенных пробелами. Конец предложения - точка.)(первое из самых коротких, если их несколько) разбить на два слова пополам. Если в этом слове нечётное кол-во символов, то последний символ слова удалить.

Решение задачи: «Найти самое короткое слово в предложении»

textual
Листинг программы
  1. #include <stdio.h>
  2. #include <string.h>
  3.  
  4. char * shortest_word(char * str, const char * delim) {
  5.     if ( str = strtok(str, delim) ) {
  6.         char * next = shortest_word(NULL, delim);
  7.         if ( ! next )
  8.             return str;
  9.         return ( strlen(str) > strlen(next) ) ? next : str;
  10.     }
  11.    
  12.     return NULL;
  13. }
  14.  
  15. #define DELIM " \t\n"
  16.  
  17. int main(void) {
  18.     char buf[BUFSIZ];
  19.    
  20.     while ( printf("String: ") && fgets(buf, BUFSIZ, stdin) && *buf != '\n' )
  21.         printf("First shortest word: %s\n", shortest_word(buf, DELIM));
  22.    
  23.     return 0;
  24. }

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

  1. Включаются необходимые заголовочные файлы для работы с памятью и строками.
  2. Определяется функция shortest_word, которая принимает указатель на строку и указатель на разделитель в качестве аргументов.
  3. Внутри функции происходит проверка наличия строки, которую можно разделить. Если строка есть, то вызывается рекурсивно функция shortest_word с аргументом NULL и разделителем.
  4. Результатом работы функции будет либо самое короткое слово, либо исходная строка, если самое короткое слово отсутствует.
  5. В функции main создается буфер для считывания строки с помощью fgets.
  6. В цикле запрашивается ввод строки до тех пор, пока она не будет пустой.
  7. Внутри цикла вызывается функция shortest_word для получения самого короткого слова в строке и выводится на экран.
  8. В конце программы возвращается значение 0, что означает успешный конец работы программы.

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


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

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

7   голосов , оценка 4.286 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы