Составить программу, определяющую длину самого длинного слова в предложении - C (СИ)
Формулировка задачи:
Помогите написать две программа, на допуск к зачету нужно...
спасибо...
Составить программу, определяющую длину самого длинного слова в предложении.
Решение задачи: «Составить программу, определяющую длину самого длинного слова в предложении»
textual
Листинг программы
#include <stdio.h>
#include <ctype.h>
int main()
{
const char CText[] = "Hello World. I Am Student. I do not want to learn. Help!";
const char* pstr = CText;
const char* maxStr = NULL;
size_t maxLen = 0;
const char* begin;
const char* end;
while (*pstr)
{
for (; *pstr && !isalpha(*pstr); ++pstr) { ; }
begin = pstr;
for (; *pstr && isalpha(*pstr); ++pstr) { ; }
end = pstr;
if (begin < end)
{
if (maxLen < end - begin)
{
maxLen = end - begin;
maxStr = begin;
}
}
}
if (maxStr && maxLen)
{
printf("word: %.*s\nsize: %u\n",
maxLen, maxStr, maxLen);
}
return 0;
}
Объяснение кода листинга программы
- Включаем необходимые заголовочные файлы для работы с консолью и проверки символов.
- Объявляем переменные: — CText — строка, содержащая предложение, в котором необходимо найти самое длинное слово. — pstr — указатель на текущий символ в строке CText. — maxStr — указатель на самое длинное слово. — maxLen — длина самого длинного слова. — begin — указатель на первый символ текущего слова. — end — указатель на последний символ текущего слова.
- Запускаем цикл, который будет проходить по каждому символу в строке CText.
- Внутри цикла, с помощью первого вложенного цикла, пропускаем все символы, которые не являются буквами.
- С помощью второго вложенного цикла, находим конец текущего слова.
- С помощью третьего вложенного цикла, проверяем, является ли текущее слово самым длинным.
- Если текущее слово оказывается самым длинным, обновляем значения переменных maxLen и maxStr.
- После завершения цикла, проверяем, было ли найдено самое длинное слово.
- Если самое длинное слово было найдено, выводим его на экран, вместе с его длиной.
- Завершаем программу.