读书人

此逻辑有有关问题吗

发布时间: 2012-04-10 21:03:56 作者: rapoo

此逻辑有问题吗?

C/C++ code
/**********************************************************写出srtcmp函数原型,因为初学,想确认是不是只要遇到return以后循环就停止,后边的内容将不在执行,如果这样,此逻辑有问题吗?**********************************************************/int strcmp (char *p1,char *p2){    for (;*p1!='\0';p1++,p2++)    {        if (*p2!='\0')        {        if (*p1>*p2) return 1;        if (*p1<*p2) return -1;        }        else return 1;    }    if (*p2!='\0')        return -1;    else return 0;}


[解决办法]
C/C++ code
int strcmp(const char *cs, const char *ct){    unsigned char c1, c2;    while (1) {        c1 = *cs++;        c2 = *ct++;        if (c1 != c2)            return c1 < c2 ? -1 : 1;        if (!c1)            break;    }    return 0;} 

读书人网 >C语言

热点推荐