思路
首尾对着遍历字符串,发现不相等就返回false
代码实现
bool isPalindromeStr(char * str){
if(NULL == str){
printf("isPalindromeStr param error!\n");
return false;
}
bool flag = true;
char * head = str;
char * tail = str + strlen(str) - 1;
while(head < tail){
if(*head != *tail){
flag = false;
break;
}
head++;
tail--;
}
return flag;
}
void testisPalindromeStr(void){
char * str1 = "Feng is from Beijing!";
char * str2 = "level level";
bool flag;
flag = isPalindromeStr(str1);
if(flag){
printf("%s is a Palindrome string \n", str1);
} else {
printf("%s is not a Palindrome string \n", str1);
}
flag = isPalindromeStr(str2);
if(flag){
printf("%s is a Palindrome string \n", str2);
} else {
printf("%s is not a Palindrome string \n", str2);
}
}
代码编译
gcc main.c str.c -g -o a.exe
调试输出
************ testisPalindromeStr ************
Feng is from Beijing! is not a Palindrome string
level level is a Palindrome string