Поиск одинаковых букв в строке - 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; }
Объяснение кода листинга программы
В этом коде:
- Объявлены две строки: s1 и s2. Первая строка содержит исходную строку, вторая - пустую строку для накопления результата.
- В цикле for происходит разбиение исходной строки на слова с помощью функции strtok. Каждое слово копируется в строку word, а его длина сохраняется в переменной len.
- Внутренний цикл for проверяет каждое слово на наличие одинаковых букв, начиная со второй. Если такая буква найдена, слово добавляется в строку s2 с помощью функции strcat, после чего цикл прерывается.
- В конце программы выводится накопленная строка s2. Список переменных и их значений:
- s1 -
nothing babe me inside yesterday, all my troubles seemed so far away
- s2 - `` (пустая строка)
- word -
nothing
- p - указывает на текущее слово в цикле for
- len - длина текущего слова в цикле for
- i - счётчик внутренних итераций цикла for
- word[i] - текущая буква в слове при внутренних итерациях цикла for
- s2[i] - текущий символ в строке s2 при внутренних итерациях цикла for
- strtok - функция для разбиения строки на слова
- strcpy - функция для копирования строки
- strlen - функция для определения длины строки
- strcat - функция для добавления строки в конец другой строки
- puts - функция для вывода строки на экран
- return 0 - завершение программы
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д