此逻辑有问题吗?
/**********************************************************写出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;}
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;}