用c语言实现字符串的回文,有要求如下:

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了用c语言实现字符串的回文,有要求如下:相关的知识,希望对你有一定的参考价值。

1,判断输入的字符串是否是回文;
2,若是,则输出结果,如“ADEFEDA”是回文; 若不是,则输出结果,如“ASFEWA”不是回文。(注意:回文的格式是:从前往后读和从后往前读是一样的,如“GHTRDRTHG”)

望不吝赐教!

参考技术A //---------------------------------------------------------------------------

#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语言实现字符串的回文,有要求如下:的主要内容,如果未能解决你的问题,请参考以下文章

C语言:判断一个数是不是为回文数,要求如下:

ZZNUOJ_用C语言编写程序实现1607:回文素数(附完整源码)

ZZNUOJ_用C语言编写程序实现1607:回文素数(附完整源码)

回文字符串——递归。C语言。

c语言 指定范围内的回文素数,题目如下,要求1S内完成的

C语言 判断回文字符串