用c写一个程序通过栈来实现回文字符串的判断。回文字符串是一个正读和反读都一样的字符串,比如level或者noon都是回文字符串。 【输入形式】输入字符串,字符用小写的英文字符。 【输出形式】输出1表示是回文,输出0表示不是回文。 【样例输入】level 【样例输出】1
时间: 2024-11-13 09:26:48 浏览: 10
```c
#include <stdio.h>
#include <stdlib.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; // 如果找到不同的字符,则不是回文
}
start++;
end--;
}
return true; // 如果所有字符都匹配,则是回文
}
int main() {
char input[100];
printf("请输入字符串:");
fgets(input, sizeof(input), stdin); // 从标准输入获取字符串,包括换行符
input[strcspn(input, "\n")] = '\0'; // 移除fgets添加的换行符
bool result = isPalindrome(input);
if (result) {
printf("1\n"); // 输出1表示是回文
} else {
printf("0\n"); // 输出0表示不是回文
}
return 0;
}
```
这个程序首先定义了一个`isPalindrome`函数,它接受一个字符串作为参数,并使用两个指针从两端向中间移动,检查每个字符是否相等。如果遇到不相等的字符,立即返回false;反之,如果全部比较完都没有发现不相等的,说明是回文,返回true。
在`main`函数中,从用户那里接收输入的字符串,然后调用`isPalindrome`函数进行判断,并根据结果输出相应的数字。
阅读全文