Проверить, является ли заданная строка палиндромом - C (СИ)

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

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

Проверить, является ли данная строка палиндромом. Пробелами и прописными буквами пренебрегать (напр., строка «А роза упала на лапу Азора» является палиндромом).

Решение задачи: «Проверить, является ли заданная строка палиндромом»

textual
Листинг программы
 char *prep  = " .,;-!?";
 for(i=0, j=strlen(s)-1; i<j; i++, j--) {
if (strchr(s[i], prep)!=NULL) { j++; continue; }
if (strchr(s[j], prep!=NULL) { i--; continue; }
if (toupper(s[i]!=toupper(s[j]) break;
}
if (i<j) printf("Palindrom!\n");
else printf("No\n";
}

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

  1. Объявляется указатель на строку prep и инициализируется строкой .,;-!?.
  2. В цикле сравниваются символы строки s с помощью индексов i и j.
  3. Если символ s[i] содержит в себе любой из символов строки prep (то есть, является нечетким палиндромом), то индекс j увеличивается на единицу и условие цикла проверяется снова.
  4. Если символ s[j] содержит в себе любой из символов строки prep (то есть, является нечетким палиндромом), то индекс i уменьшается на единицу и условие цикла проверяется снова.
  5. Если символ s[i] не равен символу s[j] после приведения их к верхнему регистру, то условие цикла прерывается.
  6. Если цикл был прерван, то выводится сообщение No.
  7. Если цикл был выполнен полностью, то выводится сообщение Palindrom.

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


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

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

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