c语言。写一个函数 isPalindrome, 它接受一个字符串作力輸入, 如果字 符串是回文,则返回1,如果不是,则返回0。 ba 你的函数应该: 一•忽略所有非字母字符。 • 不区分大小写。 • 能够处理不同长度的宇符串,包括一个空字符串
时间: 2024-03-02 19:54:05 浏览: 76
C语言判断回文字符串代码.rar
5星 · 资源好评率100%
这里是一个可以实现你要求的 isPalindrome 函数:
```c
#include <stdio.h>
#include <ctype.h>
#include <string.h>
int isPalindrome(char *str) {
// 处理空字符串
if (strlen(str) == 0) {
return 1;
}
// 初始化指针
char *left = str;
char *right = str + strlen(str) - 1;
// 双指针法判断是否为回文数(忽略非字母字符,不区分大小写)
while (left < right) {
while (!isalpha(*left)) {
left++;
}
while (!isalpha(*right)) {
right--;
}
if (tolower(*left) != tolower(*right)) {
return 0;
} else {
left++;
right--;
}
}
return 1;
}
int main() {
char str1[] = "A man, a plan, a canal, Panama!";
char str2[] = "race a car";
char str3[] = "";
char str4[] = "ab";
printf("%d\n", isPalindrome(str1)); // 输出:1
printf("%d\n", isPalindrome(str2)); // 输出:0
printf("%d\n", isPalindrome(str3)); // 输出:1
printf("%d\n", isPalindrome(str4)); // 输出:0
return 0;
}
```
该函数使用了双指针法来判断是否为回文数,同时忽略了所有非字母字符,并且不区分大小写。
阅读全文