camellia0201 发表于 2008-6-4 21:37:39

面试中遇到一个C的题目,请教一下

题目是这样的:
下面这段C代码会出现什么结果(代码截取自一个函数,XXX是一个指针变量,之前已经申明过)
if(xxx==NULL||!strcmp(xxx,"")
   //执行某项操作
else
   //执行某项操作

xiaoshancom 发表于 2008-6-7 18:30:55

原型:extern int strcmp(char *s1,char * s2);
       当s1<s2时,返回值<0
      当s1=s2时,返回值=0
      当s1>s2时,返回值>0

int strcmp(const char *str1, const char *str2)
{
      while((*str1 == *str2) && (*str1))
   {
            str1++;
            str2++;
      }

      if((*str1 == *str2) && (!*str1) )//same strings
            return 0;
      else   if((*str1 ) && (!*str2))//samebut str1 longer
            return -1;
      elseif((*str2) && (!*str1))   //same but str2 longer
            return 1;
      else
            return ((*str1 > *str2) ? -1:1);//Different
}
页: [1]
查看完整版本: 面试中遇到一个C的题目,请教一下