利用c语言写一个能够运行的程序,利用栈的基本操作对给定的字符串判断其是否是回文,若是则输出“Right”,否则输出“Wrong”。
时间: 2024-10-27 09:14:43 浏览: 23
在 C 语言中,我们可以使用栈来实现字符串回文的判断。首先,需要创建一个函数将字符串转换成字符数组,并遍历一半的字符,将它们依次压入栈中。然后,再从栈顶开始弹出元素并与剩余未处理的字符逐个比较,如果发现有不匹配,则返回 "Wrong";若所有字符都匹配,则返回 "Right"。
以下是一个简单的 C 代码示例:
```c
#include <stdio.h>
#include <string.h>
#include <stack>
// 函数用于检查一个字符串是否是回文
void isPalindrome(char* str) {
stack<char> s;
int len = strlen(str);
// 将字符串前半部分的字符压入栈中
for (int i = 0; i < len / 2; ++i) {
s.push(str[i]);
}
// 检查后半部分(如果长度为奇数,则忽略中间的字符)
for (int i = len % 2 ? len / 2 + 1 : len / 2; i < len; ++i) {
if (s.top() != str[i]) {
printf("Wrong\n");
return;
}
s.pop();
}
printf("Right\n");
}
int main() {
char input[] = "madam"; // 示例输入
isPalindrome(input);
return 0;
}
```
在这个例子中,我们创建了一个名为 `isPalindrome` 的函数,它接受一个字符串作为参数。通过 `stack<char>` 类型的栈,我们实现了字符串的回文判断。当输入是回文时,程序会输出 "Right",反之则输出 "Wrong"。
阅读全文