Организация поиска самого длинного слова - C (СИ)
Формулировка задачи:
У меня есть код, точнее только самое начало программы. Текс указан. Я никак не могу понять, как можно организовать поиск самого длинного слова из строки, введеной с клавиатуры. Если кто-то может помочь и объяснить что к чему в этом алгоритме отбора самого длинного слова, то буду благодарна за помощь)))
#include <stdio.h> //ввод вывод данных
#include <conio.h> //для _getch ожидание
#include <string.h> // ввод строк
#include <locale.h> //для установки русской раскладки
int main()
{
setlocale(LC_ALL, "Russian");
printf("Задача 1.\n");
printf("Разработала .\n");
printf("Проверил .\n");
printf("Текст задачи:\n");
printf("Дана последовательность слов длиной ДО десяти символов каждое,\nразделенных пробелами. Найти слово с максимальной длинной.\n\n\n\n");
printf("Введите текст:");
char s[2000];
scanf ("%1999[^\n]",s);
{
//как огранизовать поиск максимально длинного слова
}
_getch();
}Решение задачи: «Организация поиска самого длинного слова»
textual
Листинг программы
while ( pWord = strtok(NULL, SPCHARS) ){
if ( ( len = strlen(pWord) ) > longest ){
longest = len;
pLongest = pWord;
}
}
Объяснение кода листинга программы
pWord- это указатель на текущее слово в строке. ЗначениеpWordменяется на каждом шаге цикла.strtok(NULL, SPCHARS)- это функция, которая разделяет строку на слова и возвращает указатель на следующее слово в строке. В данном случае, мы начинаем с разделения всей строки на слова и затем переходим к следующему слову.len- это переменная, которая хранит длину текущего слова.longest- это переменная, которая хранит длину самого длинного слова, найденного до сих пор.pLongest- это указатель на самое длинное слово, найденное до сих пор.- Если длина текущего слова больше, чем длина самого длинного слова, найденного до сих пор, то:
longestобновляется до длины текущего слова.pLongestобновляется до указателя на текущее слово.
- Цикл продолжается, пока есть еще слова в строке.