C语言中用反转比较法
时间: 2024-11-17 12:10:54 浏览: 1
C语言实现单链表反转
在C语言中,反转比较法是一种常见的判断字符串是否为回文的策略。它的基本思想是先创建字符串的副本并将其反转,然后将这两个字符串进行比较。如果它们的内容一致,那么原字符串就是回文。
以下是一个简单的C语言函数实现:
```c
#include <stdio.h>
#include <string.h>
int is_palindrome(char *s) {
char reversed_s[strlen(s)+1]; // 多分配一个字符空间以防反转后溢出
int i;
// 反转字符串
for (i = 0; i < strlen(s); ++i) {
reversed_s[i] = s[strlen(s) - 1];
}
reversed_s[i] = '\0'; // 结束符
// 比较反转后的字符串和原字符串
for (i = 0; s[i] && reversed_s[i]; ++i) { // 避免空指针错误
if (s[i] != reversed_s[i]) {
return 0; // 如果有不同字符则返回false
}
}
return 1; // 全部匹配,所以是回文
}
int main() {
char str[] = "madam";
if(is_palindrome(str)) {
printf("%s is a palindrome.\n", str);
} else {
printf("%s is not a palindrome.\n", str);
}
return 0;
}
```
阅读全文