C/C++

Решить задачу на C (СИ)

Дана строка, состоящая из слов, разделенных пробелами (одним или несколькими). Найти длину самого короткого слова
#include <stdio.h>
#include <string.h>

int main()
{
const int size = 500; /* ограничение на длину строки */
char str[size],word[size],min[size]; /* строка, слово и минимальное слово */
int str_len,word_len,min_len; /* длины строки, слова и минимального слова */
fgets(str,size,stdin); /* ввод стрики с клавиатуры */
str_len = strlen(str); /* длина строки */
min_len = 0; /* минимальное слово пока не найдено */
for(int x = 0; x < str_len; x++)
{
word_len = 0; /* длина слова при начале такта цикла равна нулю */
if(str[x] != ' ' && str[x] != '\n' && str[x] != '\r')
{ /* если не пробел и не перенос троки */
while(str[x] != ' ' && str[x] != '\n' && str[x] != '\r' && x < str_len)
{
word[word_len++] = str[x++]; /* читаем слово */
}
word[word_len] = '\0'; /* добаляем в конец, чтобы обозначить границу слова */
}
if(min_len == 0)
{ /* если минимальное слово ещё не определено */
strcpy(min,word); /* копируем слово */
min_len = word_len;
}
else if(min_len > word_len)
{ /* если найдено слово меньшее, чем уже определено минимальное */
strcpy(min,word); /* копируем слово */
min_len = word_len;
}
}
/* выводим размер минимального слова, каждый символ которого должен быть 1 байт */
printf("Длина самого короткого слова составляет %d.\n",min_len);
/*
// если нужно вывести это слово, понадобится эта строка кода:
printf("\"%s\"\n",min);
*/
return 0;
}
QK
Qutbiddin Kudayverdiev
97 739
Лучший ответ