Ввести строку, вывести на экран только слова с симметричным расположением букв - C (СИ) (73517)
Формулировка задачи:
Ввести строку, вывести на экран только слова с симметричным расположением букв.Подскажите пожалуйста как это сделать
Решение задачи: «Ввести строку, вывести на экран только слова с симметричным расположением букв»
textual
Листинг программы
#include <stdio.h> #include <string.h> main() { const int BUFF_LEN = 80; char buf[BUFF_LEN]; scanf("%[^\n]", buf, BUFF_LEN); char sep[2]=" "; char *istr; istr = strtok (buf, sep); while (istr != NULL) { //здесь делаем проверку над выделенным словом из строки //пердпологаем что слова разделенны пробелом //на выделенное слово у нас указывает istr int len = strlen(istr); char sym = 1; int i = 0; for(; i < len / 2; ++i) { if(istr[i] != istr[len-i-1]) { sym = 0; break; } } if(sym) { printf("%s\n", istr); } istr = strtok (NULL,sep); } }
Объяснение кода листинга программы
В этом коде:
- Вводится строка с помощью функции scanf.
- Создается пустая строка
sep
для разделения входной строки на слова. - Используется функция strtok для разделения входной строки на слова и сохранения их в переменной
istr
. - В цикле while происходит проверка каждого слова на наличие симметричного расположения букв.
- Для каждого слова выделяется память под строку с помощью функции strlen.
- В каждой половине слова сравниваются буквы с помощью цикла for.
- Если буквы не совпадают, то переменной
sym
присваивается значение 0 и цикл прерывается с помощью оператора break. - Если все буквы совпадают, то переменной
sym
присваивается значение 1 и слово выводится на экран с помощью функции printf. - После обработки каждого слова, функция strtok вызывается снова для поиска следующего слова в входной строке.
- После обработки всех слов, программа завершается.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д