Вывести на экран слова из этой строки, которые одинаково читаются слева направо и справа налево (палиндромы) - C (СИ)
Формулировка задачи:
Составить программу, которая вводит с клавиатуры строку, содержащую до 80 символов, и выводит на экран слова из этой строки, которые одинаково читаются слева направо и справа налево (палиндромы). В случае отсутствия таких слов выводится соответствующее сообщение.
Решение задачи: «Вывести на экран слова из этой строки, которые одинаково читаются слева направо и справа налево (палиндромы)»
textual
Листинг программы
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int check (char str[])
{
int i,length;
length=strlen(str);
for (i=0;i<length;i++)
if (str[i]!=str[(length-1)-i]) return 0;
return 1;
}
int main(void)
{
char str[80];
char* t;
printf("\n");
printf("\nVvedite stroku:\n");
gets(str);
t=strtok(str," ");
printf("\n");
while (t != NULL) {
if (check(t)==1) {
printf("\nSlovo: %s",t);
printf(" - Palindrome");
}
else {
printf("\nSlovo: %s",t); printf(" - Not Palindrome");
}
t = strtok (NULL, " ");
}
return 0;
}
Объяснение кода листинга программы
- Подключение необходимых библиотек для работы со строками и памятью.
- Определение функции проверки палиндрома с помощью цикла, сравнивая символы строки от начала и конца.
- Ввод строки с помощью функции gets.
- Разделение строки на слова с помощью функции strtok и сохранение первого слова в отдельной переменной.
- Проверка каждого слова на палиндром с помощью функции check и вывод результата на экран.
- Повторение цикла, пока не будут проверены все слова.
- Возврат 0 в конце программы для корректного завершения работы.