Дана строка, содержащая пробелы. Найдите в ней самое длинное слово, выведите на экран это слово и его длину. - C (СИ)
Формулировка задачи:
Помогите пожалуйста с задачей...
Дана строка, содержащая пробелы. Найдите в ней самое длинное слово, выведите на экран это слово и его длину.
Решение задачи: «Дана строка, содержащая пробелы. Найдите в ней самое длинное слово, выведите на экран это слово и его длину.»
textual
Листинг программы
#include <stdio.h> #include <string.h> #include <ctype.h> int main() { char stroka[] = "blah, bla, blabl, a."; char buff[20]; char *ptr = stroka; int max = 0, count = 0; while(*ptr) { if (isalpha(*ptr)) { count++; } else { if( count > max) { max = count; strcpy(buff,ptr - count); buff[count] = '\0'; } count = 0; } ptr++; } printf("%s[%d]",buff,max); return 0; }
Объяснение кода листинга программы
- Подключение необходимых библиотек для работы со строками и символами.
- Объявление и инициализация строки stroka, содержащей пробелы.
- Объявление переменной buff для хранения самого длинного слова.
- Установка начального значения переменной ptr на начало строки stroka.
- Объявление переменных max и count, используемых для отслеживания текущего максимального значения длины слова и количества символов в текущем слове соответственно.
- В цикле while происходит проход по каждому символу строки stroka.
- Если символ является буквой (isalpha), то увеличивается значение переменной count.
- Если символ не является буквой, то проверяется, является ли текущее слово (с символа ptr-count) самым длинным из найденных до этого.
- Если текущее слово является самым длинным, то обновляется значение переменной max, и текущее слово копируется в переменную buff.
- После окончания цикла, выводится на экран самое длинное слово, используя функцию printf, и возвращается 0, что означает успешное завершение программы.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д