Найти и вывести самое короткое слово и его длину из введенного предложения - C (СИ)
Формулировка задачи:
Уважаемые программисты, помогите пож-ста с решение задачи ибо я нуб в этом плане.
Найти и вывести самое короткое слово и его длину из введенного предложения.
Решение задачи: «Найти и вывести самое короткое слово и его длину из введенного предложения»
textual
Листинг программы
y=strtok(d, " ,;");
//Берет твою строку и делет ее по идентификаторам. По пробелам в моем случае. Можешь добавить еще запяты точки и т.п.
while(y != NULL) {
// В этом цикле получаешь разбитую строку по отдельности словами, перебираются до тех пор. пока не нул
if(strlen(y) < z) {
// strlen измеряешь количество символов в слове и если кол.символов в слове меньше чем в предыдущем тогда переменной зэт присваиваешь количество символов у мин. из пройденных слов и символьной переменной u присваиваешь это слово.
z=strlen(y);
u=y;
}
y=strtok (NULL, " ,;");
}
Объяснение кода листинга программы
- Вводится строка d, которую необходимо разбить на отдельные слова.
- Строка разбивается на слова с помощью функции strtok, которая принимает два аргумента: строку, которую необходимо разбить, и строку, по которой происходит разбивка. В данном случае разбивка происходит по пробелам.
- Результат разбивки сохраняется в переменную y.
- Если y не равно NULL (т.е. было найдено еще одно слово), то проверяется его длина с помощью функции strlen.
- Если длина текущего слова меньше, чем у предыдущего найденного слова, то текущему слову присваивается значение переменной z, а переменной u присваивается само текущее слово.
- После цикла переменной y присваивается значение NULL, чтобы выйти из функции strtok.
- Выводится самое короткое слово (u) и его длина (z).