Найти самое короткое слово в строке - C (СИ) (69490)

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

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

Приветствую, ув. программисты, помогите пожалуйста с программкой. Задание: Разработать программу обработки строки символов в соответствии с заданным вариантом(Найти самое короткое слово). Считать, что строка оканчивается точкой, слова разделены пробелами. В программе предусмотреть ввод и вывод исходных данных и результатов

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

textual
Листинг программы
#include <stdio.h>
#include <string.h>
#include <ctype.h>
 
int main()
{
    char str[100], word[20], mn[20], c;
    int i = 0, j = 0, flg = 0;
 
    printf("Enter string: ");
    i = 0;
    do
    {
        fflush(stdin);
        c = getchar();
        str[i++] = c;
    } while (c != '\n');
    str[i - 1] = '\0';
 
    for (i = 0; i < strlen(str); i++)
    {
        while (i < strlen(str) && !isspace(str[i]) && isalnum(str[i]))
        {
            word[j++] = str[i++];
        }
        if (j != 0)
        {
            word[j] = '\0';
            if (!flg)
            {
                flg = !flg;
                strcpy(mn, word);
            }
            if (strlen(word) < strlen(mn))
            {
                strcpy(mn, word);
            }
            j = 0;
        }
    }
    printf("The shortest word is '%s'\n", mn);
    return 0;
}

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

  1. Ввод строки с помощью функции printf() и getchar().
  2. Создание строки str для хранения введенной строки.
  3. Создание строки word для хранения текущего слова.
  4. Создание строки mn для хранения самого короткого слова.
  5. Инициализация переменных i, j и flg со значениями 0.
  6. Перебор всех символов в строке str.
  7. Проверка каждого симвода на принадлежность к слову (не пробел и буква или цифра).
  8. Если текущий символ является началом нового слова, то добавляем его в строку word.
  9. Если длина текущего слова word меньше длины самого короткого слова mn, то обновляем mn значением word.
  10. После обработки всех символов, выводим самое короткое слово mn.
  11. Возвращаем 0, чтобы указать, что программа успешно завершилась.

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


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

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

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