c语言"回文"判断

来源:互联网 发布:书生软件手机版 编辑:程序博客网 时间:2024/06/08 15:09

习题1.1

题目:

“回文”是正读和反读相同的字符串,如“232”,“XYZAZYX”等。编写字符串实现判断字符串是否是回文。

代码:

#include<stdio.h>#include<string.h>#include<math.h>int HuiWen(char s[])/*回文判断,如果是回文,返回1,否则返回0*/{    char *start=s,*end=s+strlen(s)-1;   /*初始化start和end,分别指向字符串的第一个字符和最后一个字符*/    for(;end>start;end--,start++)       /*将start和end指向的字符依次比较,如果*start=*end,则start向后移动,end向前移动*/        if(*start!=*end)                /*如果*start≠*end,则停止比较并退出循环*/            break;    return end<=start;              /*如果是回文返回1,否则返回0*/}void main(){    char *s[]={"123321","XYZAZYX","1232"};    int i;    for(i=0;i<sizeof s/sizeof(s[0]);i++)    {        if(HuiWen(s[i])==1)            printf("字符串%s是回文!\n",s[i]);        else            printf("字符串%s不是回文!\n",s[i]);    }}

其他:

注意1:

    printf("sizeof(s)_____%d____\n",sizeof(s));    printf("sizeof(s[0])______%d____\n",sizeof(s[0]));    printf("s[0]___%s____\n",s[0]);    printf("strlen(s)_______%d____\n",strlen(s));    printf("sizeof(char*)____%d____\n",sizeof(char*));    printf("sizeof(char)_____%d____\n",sizeof(char));    printf("%p____%p____%p\n\n",s,s[0],s[1]);    sizeof(s)_____24____                                                                                                                                                                                                                                sizeof(s[0])______8____                                                                                                                                                                                                                             s[0]___123321____                                                                                                                                                                                                                                   strlen(s)_______3____                                                                                                                                                                                                                               sizeof(char*)____8____                                                                                                                                                                                                                              sizeof(char)_____1____                                                                                                                                                                                                                              0x7fffd2263060____0x4007bd____0x4007c4  

注意2:

在代码中char型的s+strlen(s)-1是什么意思?s应该是一个字符串吧?那么s同时也是首字符地址strlen(s)为s的长度那么s+strlen(s)-1就是字符串的末尾地址
0 0
原创粉丝点击