Я работал над потенциальными вопросами для интервью, и одним из них было написать функцию на C, чтобы определить, является ли данная строка палиндромом или нет.
Я получил довольно хорошее начало:
#include <stdio.h>
#include <stdbool.h>
bool isPalindrome(char *value);
bool isPalindrome(char *value)
{
if (value == null)
return false;
char *begin = value;
char *end = begin + strlen(value) - 1;
while(*begin == *end)
{
if ((begin == end) || (begin+1 == end))
return true;
begin++;
end--;
}
return false;
}
int main()
{
printf("Enter a string: \n");
char text[25];
scanf("%s", text);
if (isPalindrome(text))
{
printf("That is a palindrome!\n");
}
else
{
printf("That is not a palindrome!\n");
}
}
Однако теперь я хочу убедиться, что игнорирую пробелы и знаки препинания.
Как лучше всего, учитывая код, который я написал выше, продвигать указатели вперед или назад, если они встречают знаки препинания / пробелы?