Самое длинное слово в строке
Дана строка символов. Признак конца строки — символ '\n' (переход на новую строку). Строка состоит из слов, которые отделены друг от друга пробелами. Вывести самое длинное слово и его порядковый номер.
Задание аналогично задаче поиска самого короткого слова в строке. Для решения этой задачи прочитайте статью — о строках в С++. Определить символ пробела в строке можно с помощью функции isspace. Чтобы определить длину слова, воспользуйтесь функцией strlen.
Ниже приведен код для этой задачи. Код самый простой и может усовершенствоваться (например разбиение его на несколько отдельных функции). Код нам предоставил пользователь — Василий Шуверов. Скажем ему: «Спасибо!».
#include <stdio.h>
#include <stdlib.h>
#include<string.h>
int main()
{
char s[100000];
int number [10000];
char a;
int i,j=0,n=0,k=0, g, max=0, hulp=0, hulp_1=0;
/*Набор текста и одновременный подсчет длины каждого слова.*/
for (i=0;i<100000;++i)
{
s[i]=getchar();
if (s[i]=='\n')
{
number[k]=j;
break;
}
++n;
if (s[i] != ' ')
{
++j;
}
if (s[i]==' ')
{
number[k]=j;
++k;
j=0;
}
}
printf("\n");
/*Отыскание самого длинного слова и его позиции в тексте */
max=number[0];
for (g=0;g<k;++g)
{
if (number[g]>max)
{
max=number[g];
hulp=g;
}
}
++hulp;
/*Вывод на экран самого длинного слова и его позиции */
printf("The longest word at number %d: ", hulp);
for (g=0;g<n;++g)
{
if (s[g]==' ')
{
++hulp_1;
}
if (hulp-hulp_1==1)
printf("%c", s[g]);
if (hulp_1>g)
break;
}
return 0;
}
Комментарии:
Нету комментариев для вывода...