Отображать слова, содержащие аналогичные символы - C (СИ)
Формулировка задачи:
как сделать программу которая будет отображать слова содержащие аналогичные символы
пример(aa , bb, cc ...)
из строки: J'ai appelé l'ambulance
отобразить: appelé
Решение задачи: «Отображать слова, содержащие аналогичные символы»
textual
Листинг программы
#include <stdio.h>
#include <string.h>
#define N 255
#define DELIM " ,.\t\n"
int main(void)
{
char *p=NULL, *a;
char str[N]="ddgh srsff ghjkgd";
for (p = strtok(str, DELIM); p; p = strtok(NULL, DELIM))
{
a=p;
++a;
if(*a !='\0')
{
while(*a)
{
if(*(a-1) == *a)
{
printf("%s\n", p);
break;
}
++a;
}
}
}
return 0;
}
Объяснение кода листинга программы
В этом коде используется функция strtok для разделения строки на токены по заданному разделителю (в данном случае пробел, запятая, точка и табуляция). Затем код проверяет каждый символ в каждом токене, начиная со второго символа, и если текущий символ совпадает с предыдущим, выводит весь токен. Код также проверяет, что токен не пустой, прежде чем проверять его символы.
Вот список действий в коде:
- Включает необходимые заголовочные файлы.
- Определяет константы
NиDELIM. - Инициализирует переменную
mainкакvoid. - Объявляет переменные
pиa. - Инициализирует строку
str. - Использует
strtokдля разделения строкиstrна токены по разделителюDELIM. - Начинает цикл
for, который перебирает каждый токен. - Внутри цикла объявляет переменную
aравнойpи увеличивает ее на 1. - Проверяет, что следующий символ в токене не является нулевым символом.
- Если это так, то начинается внутренний цикл
while, который перебирает каждый символ в токене. - Внутри внутреннего цикла проверяет, совпадают ли текущий символ и предыдущий символ.
- Если это так, то выводит весь токен и прерывает внутренний цикл
while. - По завершении внутреннего цикла
whileкод прерывает внешний циклforи возвращает 0, чтобы указать, что программа успешно завершилась.