Проверить, является ли заданная строка палиндромом - 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"; }
Объяснение кода листинга программы
- Объявляется указатель на строку
prep
и инициализируется строкой.,;-!?
. - В цикле сравниваются символы строки
s
с помощью индексовi
иj
. - Если символ
s[i]
содержит в себе любой из символов строкиprep
(то есть, являетсянечетким
палиндромом), то индексj
увеличивается на единицу и условие цикла проверяется снова. - Если символ
s[j]
содержит в себе любой из символов строкиprep
(то есть, являетсянечетким
палиндромом), то индексi
уменьшается на единицу и условие цикла проверяется снова. - Если символ
s[i]
не равен символуs[j]
после приведения их к верхнему регистру, то условие цикла прерывается. - Если цикл был прерван, то выводится сообщение
No
. - Если цикл был выполнен полностью, то выводится сообщение
Palindrom
.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д