Как понять фразу?
как в выше описаном тобой коде о полендромном слове прыисходит выделение слова
Как в слове происходит выделение слова О.О? Или имелось в виду выделение слова из введенной строки? В коде юзаются два указателя, которые указывают (сорри за тавтологию=) на начало двух соседних слов, разделенных пробелом. Символы, находящиеся между этими указателями, принадлежат одной строке
Функция strchr
НАЗВАНИЕ
strchr, strrchr - определение местонахождения символа в строке
СИНТАКСИС
#include <string.h>
char *strchr(const char *s, int c);
char *strrchr(const char *s, int c);
ОПИСАНИЕ
Функция strchr() возвращает указатель на местонахождение первого совпадения с символом c в строке s.
Функция strrchr() возвращает указатель на местонахождение последнего совпадения с символом c в строке s.
Здесь, "символ" означает "байт" - эта функция не работает с широкими и многобайтными символами.
ВОЗВРАЩАЕМЫЕ ЗНАЧЕНИЯ
Функции strchr() и strrchr() возвращают указатель на совпадения с соответствующим символом, а если символ не найден, то возвращают NULL.
Другими словами,
Код:
while ((s1 = strchr (s1, 0x20)) != NULL)
ищет в строке пробел. 0x20 - это шестнадцатиричный код пробела, если смущает, замени его на более понятный вариант
Код:
while ((s1 = strchr (s1, ' ')) != NULL)
Если пробел не найден, то возвращает NULL и выходит из цикла, если пробел найден, то прогоняем цикл для выделения слова, его реверсинга и сравнения "обратного" слова с оригинальным. Последнее происходит с помощью функции strstr. Ну тут все просто. Читай ман
НАЗВАНИЕ
strstr - поиск подстроки
СИНТАКСИС
#include <string.h>
char *strstr(const char *haystack, const char *needle);
ОПИСАНИЕ
Функция strstr() находит первую встретившуюся подстроку needle в строке haystack. Завершающие символы '\0' не сравниваются.
ВОЗВРАЩАЕМЫЕ ЗНАЧЕНИЯ
Функция strstr() возвращает указатель на начало найденной подстроки или NULL, если подстрока не найдена.