Ввести строку, вывести на экран только слова с симметричным расположением букв - 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 вызывается снова для поиска следующего слова в входной строке.
- После обработки всех слов, программа завершается.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д