用c语言实现字符串的回文,有要求如下:
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了用c语言实现字符串的回文,有要求如下:相关的知识,希望对你有一定的参考价值。
1,判断输入的字符串是否是回文;
2,若是,则输出结果,如“ADEFEDA”是回文; 若不是,则输出结果,如“ASFEWA”不是回文。(注意:回文的格式是:从前往后读和从后往前读是一样的,如“GHTRDRTHG”)
望不吝赐教!
#include <stdio.h>
#include <string.h>
int is(char *str,size_t len) //判断长度为len的字符串str是不是回文
int b=0,e=len-1;
while (b<e)
if (str[b]==str[e])
b++;
e--;
else return 0;
return 1;
int main(void)
char s[80];
scanf("%79s",s); //输入一个字符串
if (is(s,strlen(s))) printf("\"%s\"是回文\n",s);
else printf("\"%s\"非回文\n",s);
return 0;
//---------------------------------------------------------------------------本回答被提问者采纳 参考技术B #include <stdio.h>
#include <string.h>
void main()
char dat[1000];
int i,len,istrue=1;
gets(dat);
len=strlen(dat);
for(i=0;i<len/2;i++)
if(dat[i]!=dat[len-i-1])
istrue=0;
break;
printf("%s%s回文\n",dat,istrue?"是":"不是");
还是采用楼上的吧!他写成了子函数,这个比较好!我就不改了 参考技术C char[20] str;
//str输入
int iLen=strlen(str);
boolean isCircle=false;
for(int i=0;i<iLen;i++)
int j=iLen-(i+1); //对应位置
if(i==j)
isCircle=true;
break;
if(str[i] <> str[j])
isCircle=false;
break;
if( isCircle)
输出是回文
else
输出不是回文 参考技术D #include<iostream>
using namespace std;
int main()
char s[20];
cout<<"要判断的字符串:";
gets(s);
for(unsigned int i=0;i<strlen(s)/2;i++)
if(s[i]!=s[strlen(s)-i-1])
cout<<"no.\n";
return 0;
cout<<"yes.\n";
return 0;
以上是关于用c语言实现字符串的回文,有要求如下:的主要内容,如果未能解决你的问题,请参考以下文章
ZZNUOJ_用C语言编写程序实现1607:回文素数(附完整源码)