Поиск в тексте слов-"перевертышей" - C (СИ)
Формулировка задачи:
Дан текст. Выделить из текста все слова"перевертыши".
Различие строчных и прописных букв во внимание не принимать.
Например: "top apple pot". Top —pot - слова "перевертыши".
Простите если даная тема была....
Были идеи, но не знаю как её реализовать поскольку на си работаю недавно
Решение задачи: «Поиск в тексте слов-"перевертышей"»
textual
Листинг программы
- #include <stdio.h>
- #include <string.h>
- int main()
- {
- int i = 0, j = 0, k, m, flag = 0;
- char s[80], A[30][30], word[30], *p;
- puts("Input text:");
- fgets(s, 80, stdin);
- for(p = strtok(s, " ,:-\n"); p; p = strtok(NULL, " ,:-\n"), i++){
- strcpy(A[i], p);
- for(m = 0; m < strlen(A[i]); m++){
- if(A[i][m] >= 'A' && A[i][m] <= 'Z')
- A[i][m] = A[i][m] + 32;
- }
- }
- for(j = 0; j < i; j++){
- strcpy(word, A[j]);
- strrev(word);
- for(k = j; k < i; k++){
- if(0 == strcmp(A[k], word) && j != k){
- printf("Inverse words %s -> %s\n", A[j], A[k]);
- flag = 1;
- }
- }
- }
- if(flag == 0)
- puts("Inverse words not found.");
- return 0;
- }
Объяснение кода листинга программы
- Вводится текст, который необходимо проанализировать.
- Текст разбивается на отдельные слова (допускаются пробелы, запятые, точки, двоеточия и тире в качестве разделителей).
- Каждое слово приводится к нижнему регистру.
- Для каждого слова в тексте проверяется, является ли оно перевертышем другого слова в тексте (с учетом регистра). Если да, то выводится сообщение об этом.
- Если в тексте не найдено ни одного перевертыша, выводится соответствующее сообщение.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д