Проверить, является ли слово палиндромом - C (СИ)
Формулировка задачи:
3.
Палиндром Дано слово, состоящее только из строчных латинских букв. Проверьте, является ли это слово палиндромом. Выведите YES или NO. При решении этой задачи нельзя пользоваться циклами, в решениях на питоне нельзя использовать срезы с шагом, отличным от 1. Ввод Вывод radar YES yes NOРешение задачи: «Проверить, является ли слово палиндромом»
textual
Листинг программы
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main()
{
char *str = (char*)malloc(100007 * sizeof(char));
char *rev = (char*)malloc(100007 * sizeof(char));
scanf("%s", str);
strcpy(rev, str);
strrev(rev);
if(strcmp(rev, str)) printf("NO"); else printf("YES");
free(str);
free(rev);
return 0;
}
Объяснение кода листинга программы
В этом коде:
- Объявлены две переменные типа char*, называемые
strиrev, которые будут использоваться для хранения строки и её перевёрнутой версии. - С помощью функции
scanfвводится строка и сохраняется в переменнойstr. - С помощью функции
strcpyперевёрнутая версия строки сохраняется в переменнойrev. - Функция
strrevпереворачивает строку в переменнойrev. - С помощью функции
strcmpсравниваются строкиrevиstr. Если они равны, то выводитсяYES, иначе выводитсяNO. - С помощью функции
freeосвобождается память, выделенная под переменныеstrиrev. - Возвращается 0, что означает успешный конец работы программы.