Найти самое длинное слово в тексте - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Помогите найти ошибки в программе для нахождения самого длинного слова в тексте. Что нужно добавить, чтобы данная программа находила и самую длинную фразу?
Листинг программы
  1. #include<stdio.h>
  2. #include<conio.h>
  3. #include<string.h>
  4. int main()
  5. {
  6. char string[]="C is one of the most widely used programming languages of all time";
  7. char geps[]=" ";
  8. char *p1;
  9. char *p2;
  10. int max_dlinna;
  11. max_dlinna=0;
  12. printf("%s",string);
  13. printf("\n samoe dlinnoe slovo \n",string);
  14. p1=strtok(string,geps);
  15. while (p1!=NULL)
  16. {
  17. max_dlinna=strlen(p1);
  18. p2=p1;
  19. }
  20. p1=strtok(NULL,geps);
  21. }
  22. printf("%s",p2);
  23. getch();
  24. }

Решение задачи: «Найти самое длинное слово в тексте»

textual
Листинг программы
  1. #include <stdio.h>
  2. #include <string.h>
  3. #include <stdlib.h>
  4.  
  5. int main() {
  6.     char string[]="The first sentence. Sentenceaaaaaaa. The second sentence.";
  7.     char geps[]=" .";
  8.     char *b, *e, *p, *pmax_sentence = NULL, *pmax_word = NULL;
  9.     int l, max_dlinna = 0;
  10.  
  11.     printf("String is '%s'.\n", string);
  12.  
  13.     // max sentence
  14.     max_dlinna = 0;
  15.     for (b=string;;) {
  16.         for (;*b && *b == ' '; ++b);
  17.         e = strchr(b, '.');
  18.         if (e) 0[e]=0;
  19.         if (max_dlinna < (l = strlen(b))) {
  20.             max_dlinna = l;
  21.             if (pmax_sentence) free(pmax_sentence);
  22.             pmax_sentence = strdup(b);
  23.         }
  24.         if (!e) break;
  25.         0[e] = '.';
  26.         b    = e+1;
  27.     }
  28.  
  29.     // max word
  30.     max_dlinna = 0;
  31.     for (p=strtok(string,geps); p; p=strtok(NULL,geps)) {
  32.         if (max_dlinna < (l=strlen(p))) {
  33.             if (pmax_word) free(pmax_word);
  34.             pmax_word = strdup(p);
  35.             max_dlinna = l;
  36.         }
  37.     }
  38.  
  39.     printf("The longest word is '%s'.\n", pmax_word);
  40.     printf("The longest sentence is '%s'.\n", pmax_sentence);
  41.     free(pmax_word);
  42.     free(pmax_sentence);
  43.  
  44.     system("pause");
  45. }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

12   голосов , оценка 3.833 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы