降央卓玛个人图片:c语言设计o

来源:百度文库 编辑:高校问答 时间:2024/04/28 06:48:07
??(18)以下程序中函数huiwen的功能是检查一个字符串是否是回文,当字符串是回文时,函数返回字符串:yes!,否则函数返回字符串:no!,并在主函数中输出,所谓回文即正向与反向的拼写都一样,例如:adgda。请填空。
??#include
??char *huiwen(char *str)
??{ char *p1,*p2; int i,t=0;
?? p1=str;p2= 【18】 ;
?? for(i=0;i<=strlen(str)/2;i++)
?? if(*p1++!=*p2--){t=1;break;}
?? if( 【19】 ) return("yes!");
?? else return("no!");
??}
??main()
??{ char str[50];
?? printf("Input:"); scanf("%s",str);
?? printf("%s\n", 【20】 );
??
谁能说明一下个行的意思
说的越详细越好

//c语言设计o
#include<stdio.h>//提供scanf和printf的库
#include<string.h>//提供strlen的库
char *huiwen(char *str)//指针函数
{
char *p1,*p2; int i,t=0;
p1=str;p2=str+strlen(str)-1;//指针p1指向字符串str的首项,指针p2指向字符串str的末项
for(i=0;i<=(int)strlen(str)/2;i++)//将字符串分为两半来比较,strlen计算字符个数
if(*p1++!=*p2--){t=1;break;}//由外至内考察首项与末项是否相同,如果不相同则令t=1并中断进程
if(t==0) return("yes!");//最后t不被改变的,即t仍等于0,则此字符串是回文
else return("no!");//否则不是回文
}
void main()
{
char str[50];
printf("Input:");
scanf("%s",str);//输入字符串
printf("%s\n",huiwen(str));//输出函数返回的字符串(yes或no)。%s\n表示以字符的格式输出并最后输出换行符
}
//【18】:str+strlen(str)-1
//【19】:t==0
//【20】:huiwen(str)
//以adgda为例,(int)strlen(str)/2=2,程序先比较首尾两个a,再比较内里两个d,结果发现都相等,t=0,返回"yes".

如果你给分的话,可能会有人回答你的问题