Поиск в тексте слов-"перевертышей" - 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;
}

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

  1. Вводится текст, который необходимо проанализировать.
  2. Текст разбивается на отдельные слова (допускаются пробелы, запятые, точки, двоеточия и тире в качестве разделителей).
  3. Каждое слово приводится к нижнему регистру.
  4. Для каждого слова в тексте проверяется, является ли оно перевертышем другого слова в тексте (с учетом регистра). Если да, то выводится сообщение об этом.
  5. Если в тексте не найдено ни одного перевертыша, выводится соответствующее сообщение.

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


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

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

13   голосов , оценка 4.077 из 5
Похожие ответы