Поиск одинаковых букв в строке - C (СИ)

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

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

Здравствуйте, не могу понять как работать с этими чудными строками, а вернее с данной задачей: "В заданой строке найти слова, в которых первая буква слова входит в это слово хотя бы 1 раз". Если б слова были все одинаковы(в размерах), то б трудностей особоых бы не вызывало, а так я хз как это провернуть. Подскажите пожайлусто)

Решение задачи: «Поиск одинаковых букв в строке»

textual
Листинг программы
  1. #include <stdio.h>
  2. #include <string.h>
  3.  
  4. int main()
  5. {
  6.     char s1[] = "nothing babe me inside yesterday, all my troubles seemed so far away";
  7.     char s2[80] = "", word[30], *p;
  8.     int len, i;
  9.     for(p = strtok(s1, " ,"); p; p = strtok(NULL, " ,")){
  10.         strcpy(word, p);
  11.         len = strlen(word);
  12.         for(i = 1; i < len; i++){
  13.             if(word[i] == word[0]){
  14.                 strcat(s2, p);
  15.                 strcat(s2, " ");break;
  16.             }
  17.         }
  18.     }
  19.     puts(s2);
  20.     return 0;
  21. }

Объяснение кода листинга программы

В этом коде:

  1. Объявлены две строки: s1 и s2. Первая строка содержит исходную строку, вторая - пустую строку для накопления результата.
  2. В цикле for происходит разбиение исходной строки на слова с помощью функции strtok. Каждое слово копируется в строку word, а его длина сохраняется в переменной len.
  3. Внутренний цикл for проверяет каждое слово на наличие одинаковых букв, начиная со второй. Если такая буква найдена, слово добавляется в строку s2 с помощью функции strcat, после чего цикл прерывается.
  4. В конце программы выводится накопленная строка s2. Список переменных и их значений:
  5. s1 - nothing babe me inside yesterday, all my troubles seemed so far away
  6. s2 - `` (пустая строка)
  7. word - nothing
  8. p - указывает на текущее слово в цикле for
  9. len - длина текущего слова в цикле for
  10. i - счётчик внутренних итераций цикла for
  11. word[i] - текущая буква в слове при внутренних итерациях цикла for
  12. s2[i] - текущий символ в строке s2 при внутренних итерациях цикла for
  13. strtok - функция для разбиения строки на слова
  14. strcpy - функция для копирования строки
  15. strlen - функция для определения длины строки
  16. strcat - функция для добавления строки в конец другой строки
  17. puts - функция для вывода строки на экран
  18. return 0 - завершение программы

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


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

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

11   голосов , оценка 4.091 из 5

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

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

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