首页 > 试题广场 >

下列四个函数中,与库函数strcmp(char *s,cha

[单选题]

下列四个函数中,与库函数strcmp(char *s,char *t)的功能相等的是(   )。

  • strcmp1(char *s,char *t)
      {  for (;*s++==*t++;)
         if(*s==’\0’) return 0;
         return (*s-*t);
    }
  • strcmp2(char*s,char*t)
     {  for(;*s++==*t++;)
    if(!*s)  return 0;
    return  (*s-*t);
    }
  • strcmp3(char *s,char *t)
    { for(;*t==*s;){
          if(!*t)  return 0;
    t++;s++;
    }
    return (*s-*t);
    }
  • strcmp4(char*s,char *t)
    {   for(;*s==*t;s++,t++)
       if(!*s)  return 0;
      return (*t-*s);
    }
选C
不能在for循环中判断条件时自加一,否则在函数体中的if判断的就不是当前位置的值了,所以a,b错误;
d中最后的return (*t-*s)反了,应该是return (*s-*t)
发表于 2016-11-30 23:07:47 回复(0)
选项为C。
判断两字符串是否相等。
A与B从第二个元素开始判断,错。
D是最后两字符串比较位置颠倒,题干比较的是*s,*t。(前者比后者大,返回一个大于零的数,strcmp()函数)。
发表于 2021-11-08 20:04:51 回复(0)
C
在for中判断增1会使得函数体中的if判断不是当前想要判断的位置;strcmp的返回值是前者减去后者的差值
发表于 2017-10-11 13:25:56 回复(0)