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

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

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

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

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

textual
Листинг программы
#include <stdio.h>
#include <string.h>
 
char * shortest_word(char * str, const char * delim) {
    if ( str = strtok(str, delim) ) {
        char * next = shortest_word(NULL, delim);
        if ( ! next )
            return str;
        return ( strlen(str) > strlen(next) ) ? next : str;
    }
    
    return NULL;
}
 
#define DELIM " \t\n"
 
int main(void) {
    char buf[BUFSIZ];
    
    while ( printf("String: ") && fgets(buf, BUFSIZ, stdin) && *buf != '\n' )
        printf("First shortest word: %s\n", shortest_word(buf, DELIM));
    
    return 0;
}

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

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

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


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

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

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