黑马程序员技术交流社区

标题: 判断字符串是否为回文? [打印本页]

作者: lipeiaiwo    时间: 2014-7-22 18:34
标题: 判断字符串是否为回文?
这个没看太懂,谁能给解释下这句?

     // 2.定义一个指向变量right指向字符串的末字符
    char *right = str + strlen(str) - 1;   

这个具体是怎么变化的?我现在看的就是str+5-1 这是什么组合?


/*
编写一个函数,判断某个字符串是否为回文。
回文就是从左边开始读 和 从右边开始读 都是一样的,比如"abcba"
*/

#include <string.h>
#include <stdio.h>
int isHuiwen(char *str);

int main()
{
    printf("%d\n", isHuiwen("abcba"));
    return 0;
}

/*
返回1代表是回文
返回0代表不是回文
*/
int isHuiwen(char *str)
{
    // 1.定义一个指向变量left指向字符串的首字符
    char *left = str;
    // 2.定义一个指向变量right指向字符串的末字符
    char *right = str + strlen(str) - 1;
   
    while (left < right)
    {
        // 如果左边和右边的字符不一样
        if (*left++ != *right--)
        {
            return 0;
        }
    }
   
    return 1;
}




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2