c语言三十个字符以内字符串判断是否为回文数代码怎么写 要求如果是打印true 如果不是打印false
时间: 2024-11-25 08:16:01 浏览: 34
在C语言中,为了判断一个由数字构成的30个字符内的字符串是否为回文数,你可以先将字符串转换成整数,然后比较原串和反转后的字符串是否相等。以下是简单的代码实现:
```c
#include <stdio.h>
#include <string.h>
// 函数用于判断字符串是否为回文
int isPalindrome(char str[]) {
int len = strlen(str);
// 将字符串转换为整数
long long num = 0;
for (int i = 0; i < len && str[i] >= '0' && str[i] <= '9'; i++) {
num = num * 10 + (str[i] - '0');
}
// 反转并比较
char reversed[31];
sprintf(reversed, "%lld", num); // 或者直接用`reversed[len] = '\0';` 和 `num = 0;`
len = strlen(reversed);
for (int i = 0, j = len - 1; i < j; i++, j--) {
if (str[i] != reversed[j]) {
return 0; // 不是回文,返回 false
}
}
return 1; // 是回文,返回 true
}
int main() {
char str[31];
printf("请输入一个30个字符以内的数字字符串:");
fgets(str, sizeof(str), stdin); // 防止超长输入
str[strcspn(str, "\n")] = '\0'; // 移除换行符
if (isPalindrome(str)) {
printf("%s 是回文数\n", str);
} else {
printf("%s 不是回文数\n", str);
}
return 0;
}
```
阅读全文