c语言判断是否为回文
时间: 2024-09-20 18:08:48 浏览: 56
在C语言中,判断一个字符串是否是回文(即正读反读都一样)的一种常见方法是通过比较字符串的前半部分与它的后半部分。这里是一个简单的函数示例:
```c
#include <stdio.h>
#include <string.h>
int isPalindrome(char str[]) {
int len = strlen(str);
if (len <= 1) { // 如果字符串长度为0或1,它是回文的
return 1;
}
// 比较首尾字符是否相等,然后向中间移动
for (int i = 0; i < len / 2; i++) {
if (str[i] != str[len - 1 - i]) {
return 0; // 字符不匹配,不是回文
}
}
return 1; // 所有字符匹配,是回文
}
int main() {
char test[] = "madam";
if (isPalindrome(test)) {
printf("%s is a palindrome.\n", test);
} else {
printf("%s is not a palindrome.\n", test);
}
return 0;
}
```
相关问题
c语言判断是否是回文数
在 C 语言中,判断一个整数是否是回文数通常是指从前往后读和从后往前读是一样的数字。下面是一个简单的函数示例,用于检查输入的整数 `num` 是否是回文:
```c
#include <stdio.h>
#include <stdbool.h>
bool isPalindrome(int num) {
if (num < 0) { // 负数不是回文
return false;
}
int reversed = 0; // 反转后的数字
while (num != 0) {
int digit = num % 10; // 取最后一位数字
reversed = (reversed * 10) + digit; // 将新数字加到反转数上
num /= 10; // 移除最后一位
}
return reversed == num; // 如果反转后的数字等于原数,则是回文
}
int main() {
int input;
printf("请输入一个整数:");
scanf("%d", &input);
if (isPalindrome(input)) {
printf("%d 是回文数。\n", input);
} else {
printf("%d 不是回文数。\n", input);
}
return 0;
}
c语言判断字符串回文
在C语言中,判断一个字符串是否为回文(即正读反读都一样)的一种常见方法是通过双指针技术,从两端向中间遍历并比较字符。以下是一个简单的函数示例:
```c
#include <stdio.h>
#include <stdbool.h>
#include <string.h>
bool isPalindrome(char str[]) {
int start = 0;
int end = strlen(str) - 1; // 获取字符串长度
while (start < end) { // 当两个指针未相遇时循环
if (str[start] != str[end]) { // 如果对应位置的字符不同
return false; // 找到非回文的证据,直接返回false
}
start++; // 移动开始指针
end--; // 移动结束指针
}
return true; // 没有找到差异,说明是回文
}
int main() {
char str[] = "madam";
if (isPalindrome(str)) {
printf("%s is a palindrome.\n", str);
} else {
printf("%s is not a palindrome.\n", str);
}
return 0;
}
```
阅读全文
相关推荐
















