我一直在研究潜在的面试问题,其中之一就是在C中编写一个函数来检测给定的字符串是否是回文。如何检测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");
}
}
不过,我现在想确保我忽略空格和标点符号。
鉴于上面所写的代码,如果他们遇到标点符号/空格,向前或向后推进指针,最好的方法是什么?
这是一所学校的功课? – 2010-03-01 08:07:06
@Jojo,显然你没有理解这个问题。 – Waldrop 2010-03-01 08:29:35