Определить, является ли строка палиндромом - C (СИ) (71918)
Формулировка задачи:
Дана строка символов до точки. Определить, является ли она палиндромом. (Палиндром слева направо и справа налево читается одинаково, например "Леша на полке клопа нашел") Пробелы и знаки препинания, а также регистр букв не учитываются.
#include <stdio.h> #include <stdlib.h> #include <string.h> int main() { int i,j; char str[20],str1[20]; puts("Введите строку:\n"); gets(str); j=0; for(i=strlen(str)-1; i>=0; i--) { str1[j]=str[i]; j++; } str1[j]=0; if(strcmp(str,str1)==0) puts("да\n"); else puts("нет\n"); system("pause"); return 0; }
Решение задачи: «Определить, является ли строка палиндромом»
textual
Листинг программы
#include <stdio.h> #include <stdlib.h> #include <string.h> int main() { int i,j; char str[50]="a roza upala na lapu azora",str1[50]; puts("Введите строку:\n"); //gets(str); j=0; for(i=strlen(str)-1; i>=0; i--) { if(str[i]!=' ') str1[i]=str[i]; } bool fl=true; int n=strlen(str1); for(i=0;i<n/2;i++) if (str1[i]!=str1[n-1-i]) { puts("no\n"); return 0; } puts("yes\n"); return 0; }
Объяснение кода листинга программы
В этом коде:
- Подключаются необходимые библиотеки.
- Определяются переменные:
i
иj
- для работы с циклами.str
- строка, которую необходимо проверить на палиндром.str1
- дополнительная строка для обработки в цикле.
- Пользователю предлагается ввести строку.
- В цикле заполняется строка
str1
символами изstr
, при этом игнорируются пробелы. - Переменная
fl
устанавливается вtrue
, а переменнаяn
получает длину строкиstr1
. - В цикле проверяется, являются ли символы
str1
на позицииi
иn-1-i
одинаковыми. - Если символы не совпадают, то выводится сообщение
no
и программа завершается. - Если все символы совпадают, то выводится сообщение
yes
.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д