Дана строка символов. Признак конца строки — символ
'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; }
Результат:
CppStudio.com
Лишь очень немногие живут сегодняшним днем. Большинство готовится жить позднее. n The longest word at number 5: сегодняшним
Комментарии
RodjeR
AndreiST
YourSpace_tym