В символьной строке оставить только те слова, в которых есть повторяющиеся буквы - C (СИ)

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

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

Здравствуйте! Не могли бы вы помочь мне в решении задачи? Я уже третий день работаю,но не получается,за каникулы почти все забыл Уже все обгуглил... Задание: В символьной строке оставить только те слова, в которых есть повторяющиеся буквы. (Не использовать дефолтные функции работы со строками (например strstr, strlen). ) Вот код который наработал за сегодня:
Листинг программы
  1. #include <stdio.h>
  2. #include <string.h>
  3. #include <conio.h>
  4. #define VOWELS "AaEeIiOoUu"
  5. #define DELIM " "
  6. int main(void) {
  7. int i=0,y=0,z=0,t=0,q=0,N=0,p=0;
  8. char buf[BUFSIZ], * ptr;
  9. char fan[10], * finish;
  10. printf("Enter_string: ");
  11. while ( fgets(buf, BUFSIZ, stdin) && *buf != '\n' ) {
  12. for (i=0;i<buf[i]!='\0';i++) {
  13. if (buf[i]!=' ') {
  14. y++;
  15. fan[z]=buf[i];
  16. z++;
  17. N=i;
  18. }
  19. }
  20. }
  21. //printf("%c",fan[z]);
  22. for (z=0;z<9;z++) {
  23. printf("%c\n",fan[z]);
  24. }
  25. printf("\n\n%d\n\n\n",y);
  26. for (t=0;t<N;t++) {
  27. for (q=0;q<N;q++) {
  28. if (fan[t]==fan[q]){p++;
  29. if (p>1){
  30. printf("%c",fan[t]);
  31. }
  32. }
  33. }
  34. }
  35. printf("\n\n... Press any key ...");
  36. getch();
  37. return 0;
  38. }
Там правда много лишнего,я там уже запутался Спасибо!

Решение задачи: «В символьной строке оставить только те слова, в которых есть повторяющиеся буквы»

textual
Листинг программы
  1. #include <stdio.h>
  2.  
  3. char * mystrchr(const char * s, const char c) {
  4.     return ( *s == '\0' ) ? NULL : ( *s == c ) ? (char*)s : mystrchr(s + 1, c);
  5. }
  6.  
  7. int have_dbl(const char * s) {
  8.     return ( *s == '\0' ) ? 0 : mystrchr(s + 1, *s) ? 1 : have_dbl(s + 1);
  9. }
  10.  
  11. #define DELIM " \t\n"
  12.  
  13.  
  14. int main(void) {
  15.     char buf[BUFSIZ];
  16.     int len, pos, inword;
  17.  
  18.     while ( printf("String: ") && fgets(buf, BUFSIZ, stdin) && *buf != '\n' ) {
  19.         printf("Result: ");
  20.  
  21.         for ( len = 0; buf[len]; ++len )
  22.             ;
  23.         for ( pos = 0; pos < len; ++pos )
  24.             if ( mystrchr(DELIM, buf[pos]) )
  25.                 buf[pos] = '\0';
  26.         for ( inword = 0, pos = 0; pos < len; ++pos ) {
  27.             if ( buf[pos] == '\0' )
  28.                 inword = 0;
  29.             else if ( ! inword ) {
  30.                 inword = 1;
  31.                 if ( have_dbl(buf + pos) )
  32.                     printf("%s ", buf + pos);
  33.             }
  34.         }
  35.         printf("\n");
  36.     }
  37.  
  38.     return 0;
  39. }

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


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

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

14   голосов , оценка 3.857 из 5

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

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

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