以下程序中函数huiwen.的功能是检查一个字符串是否是回文,当字符串是回文时,函数返回字符串: yes!,否则函数返回字符串:no!,并在主函数中输出,所谓回文即正向与反向的拼写都一样,例如:adgda。请填空。 #include<string.h

admin2013-02-23  26

问题 以下程序中函数huiwen.的功能是检查一个字符串是否是回文,当字符串是回文时,函数返回字符串: yes!,否则函数返回字符串:no!,并在主函数中输出,所谓回文即正向与反向的拼写都一样,例如:adgda。请填空。
   #include<string.h>
    char *huiwen(char*str)
   { char*p1,*P2;int i,t=0;
     P1=str;p2= 【  】;
     for(i=0;i<=strlen(str)/2;i++)
     if(*p1++!=*p2--){t=1;break;}
     if( 【  】)return("yes!");
     else return("no!");
   }
   main()
   {  char str[50];
      printf("Input:");scanf("%s",str);
       printf("%s\n", 【  】);
   }

选项

答案str+strlen(str)-1 i>strlen(str)/2 huiwen(str)

解析 首先使指针p1指向字符串的首地址,指针p2指向字符串的尾地址(不包括字符串结束标记’\0’),然后指针p1从前往后,指针p2从后往前,直到移至字符串的中间元素,若两者所指的元素不相等,则跳出循环,此时i<=strlen(str)/2,若两者所指的元素均相等,则此时i>strlen(str)/2。
   通过if语句判断,如果i>strlen(str)/2,则返回“yes!”,否则返回“no!”。
   主函数中要求输出函数huiwen(str)的返回值。
转载请注明原文地址:https://kaotiyun.com/show/JzJp777K
0

最新回复(0)