判断是不是回文字符串

/*判断是不是回文串

思路:要是它是回文串,那么他的前半部分倒序输出和后半部分一定是一样的,

要是不一样就不是回文串。

例:12321 21(前半段倒序输出)==21

123321 321==321

*/

#include<stdio.h>

#include<string.h>

int main(void)

{

char a[101],s[101];

int i,top=0,len,mid,next;

printf("输入你要判断的:\n");

gets(a);

len=strlen(a); //测量长度

mid=len/2;//取出中间位置

if(len%2)

next=mid+1;//要是奇数起始位就是中间的下一位;

else

next=mid;//偶数就是中间

for(i=0;i<mid;i++)

s[top++]=a[i];//把前半段存起来

for(top=top-1,i=next;top>0;top--)//架设循环开始比较

{

if(a[i]-s[top])//不一样就跳出循环

break;

else //一样就继续判断下一位

i++;

}

//出了循环之后,判断top,是回文串,top就是正常

//出循环的,top==0;不是回文串,top一定不是零;

if(top-0)

printf("NO\n");

else

printf("yes\n");

return 0;

}

这个简单直接附上程序,看一看注释就可以了。

我是小纸人,谢谢大家。​

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值