参加过去年水平考试的朋友还记得这道题吧?
函数strcmp()是比较两个字符串 s 和 t 的大小。若 s < t 函数返回负数;若 s = t 函数返回0;若 s > t,函数返回正数。
[函数1.1]
int strcmp(char *s,char *t)
{ while ( *s && *t && __(1)__){
    s++;t++ ;
    }
    return __(2)__;
}
这里的第一行两个&&的具体作用,谁能帮我分析一下?谢谢!!!!!!!!

解决方案 »

  1.   

    两个&&是并且的意思,就是说,要三个条件同时满足,才执行下面的语句,否则循环结束。
      

  2.   

    *s && *t 这样是判断如果*s和*t其中有一个等于'\0'的话,就退出循环。也就是到达字符串结束的时候就不再比较。
      

  3.   

    int strcmp(char *s, char *t)
    {
        while (*s && *t && *s==*t)
        {
          s++; t++;
        }
        return *s - *t;
    }
    两个&&是并且的意思,就是说,要三个条件同时满足,才执行下面的语句,否则循环结束。
      

  4.   

    整个while()条件是:
    条件1:*s!='\0'
    条件2:*t!='\0'
    条件3:显然应该 (1) *t == *s  才继续比较。返回 (2) *s - *t .╔═════════╗
    ║                  ║
    ║  劝君更进一杯酒,║
    ║  西出阳关无故人。║
    ║                  ║
    ║    iiCup   ║
    ║     双杯献酒     ║
    ║                  ║
    ╚═════════╝