#include <stdio.h>
#include <string.h>
//利用栈判断一个字符串是否为回文串
int main(){
char a[101],s[101];
int i,len,mid,next,top;
gets(a);//读入一行字符串
len = strlen(a);//求字符串的长度
mid = len/2 -1;//求字符串的中点,这里用数组模拟栈,数组从0开始存储,所以中间位置mid要-1
top = 0;//栈的初始化
//将mid前的字符依次入栈
for(i = 0;i<=mid;i++){
s[++top] = a[i];
}
//判断字符串的长度是奇数还是偶数,并找出需要进行字符匹配的起始下标next
if(len%2==0){
next = mid+1;
} else {
next = mid+2;
}
//开始逐一匹配
for(i = next;i<=len-1;i++){
if(a[i]!=s[top]){
break;//如果不匹配跳出循环
top--;
}
}
//如果top=0,则说明栈内所有的字符都一一匹配了
if(top==0){
printf("该数是回文数");
} else {
printf("该数不是回文数");
}
getchar();getchar();
return 0;
}
利用栈判断一个字符串是否为回文串
最新推荐文章于 2024-04-25 08:31:40 发布
此篇博客介绍了如何使用C/C++编程语言通过栈来判断输入的字符串是否为回文串。作者展示了从读取字符串、计算长度、栈操作到字符匹配的详细过程,适合初学者理解基本的栈和回文概念。
2435

被折叠的 条评论
为什么被折叠?



