Сделать из введенного слова палиндром - C (СИ)
Формулировка задачи:
НУжно: написать написать в си программу, которая делает из вводимого слова палиндром. Например ввели (мама) после выполнения программы печатает (мамаамам) Помогите. Заранее спасибо
Решение задачи: «Сделать из введенного слова палиндром»
textual
Листинг программы
#include <stdio.h>
#define WORD_LENGTH 64
#define get_word(w) ( scanf("%63[^ \t\n]%*c", (w)) == 1 )
int main(void) {
char wrd[WORD_LENGTH];
while ( printf("Word: ") && get_word(wrd) ) {
char * p = wrd;
while ( *p )
printf("%c", *p++);
while ( p > wrd )
printf("%c", *(--p));
printf("\n");
}
return 0;
}
Объяснение кода листинга программы
В этом коде:
- Подключается стандартная библиотека printf.h и scanf.h
- Определяется константа WORD_LENGTH, которая задает максимально допустимую длину вводимого слова (64 символа).
- Определяется функция get_word, которая считывает слово из стандартного ввода и сохраняет его в переменной wrd. Функция возвращает 1, если слово успешно считано, и 0 в противном случае.
- Создается пустая строка wrd длиной WORD_LENGTH.
- В цикле while программа запрашивает у пользователя ввод слова и вызывает функцию get_word для его считывания.
- Внутри цикла создается указатель p на начало строки wrd.
- В цикле while (p) программа выводит символ p и увеличивает указатель p на 1.
- После окончания внутреннего цикла, указатель p перемещается на начало строки wrd (p > wrd) и в обратном порядке выводит символы до тех пор, пока не будет достигнут конец строки.
- После окончания внешнего цикла программа завершается. Следует отметить, что данный код не обрабатывает ошибки и исключительные ситуации, такие как отсутствие ввода пользователя или ввод символов, не являющихся буквами.