C++

Самое длинное слово в строке

Дана строка символов. Признак конца строки — символ '\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;
}
Теги:
слово, строка
Добавлено: 11 Апреля 2018 10:28:27 Добавил: Андрей Ковальчук Нравится 0
Добавить
Комментарии:
Нету комментариев для вывода...