#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main()
{
char str[100];
gets(str);
int mid;
int len = strlen(str);
mid = len/2 ;//4-->2 3-->1 c语言是向取整!
char str1[100];//定义栈
int top = 0;//定义栈的变量,用于插入和删除
int i = 0;//若字符串为'aha' mid为1 把a压入栈中
for(i; i < mid ;i++){
str1[top] = str[i];
top++;//压入数据后,要top++;
}
//if语句为判断mid,当字符串为'aha'时,不用核对h,而当字符串为'ahah'时,都要核对!
if(mid%2 == 0){
mid = mid;
}
else{
mid = mid + 1;
}
//把栈中的数据和数组后半段的数据比较。当字符串为'aha'时,比较 a 和 a,记住没有h
for(i=mid;i<len;i++){
if(str[i]!=str1[--top]){
printf("%s","不是回文数");
break;
}
}
if(top == 0){
printf("%s","是回文数");
}
}
C语言使用栈来判断回文字符串
最新推荐文章于 2024-02-29 19:23:57 发布