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

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

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

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

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

textual
Листинг программы
#include <stdio.h>
#include <string.h>
 
int main()
{
    char s1[] = "nothing babe me inside yesterday, all my troubles seemed so far away";
    char s2[80] = "", word[30], *p;
    int len, i;
    for(p = strtok(s1, " ,"); p; p = strtok(NULL, " ,")){
        strcpy(word, p);
        len = strlen(word);
        for(i = 1; i < len; i++){
            if(word[i] == word[0]){
                strcat(s2, p);
                strcat(s2, " ");break;
            }
        }
    }
    puts(s2);
    return 0;
}

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

В этом коде:

  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
Похожие ответы