1个回答
展开全部
正确答案选C
不能在for循环中判断条件时自加一,否则在函数体中的if判断的就不是当前位置的值了,所以AB错误;
D中最后的return (*t-*s)反了,应该是return (*s-*t)
标准函数如下:
int strcmp(const char *str1,const char *str2)
{
/*不可用while(*str1++==*str2++)来比较,当不相等时仍会执行一次++,
return返回的比较值实际上是下一个字符。应将++放到循环体中进行。*/
while(*str1 == *str2)
{
if(*str1 == '\0')
return0;
str1++;
str2++;
}
return *str1 - *str2;
}
不能在for循环中判断条件时自加一,否则在函数体中的if判断的就不是当前位置的值了,所以AB错误;
D中最后的return (*t-*s)反了,应该是return (*s-*t)
标准函数如下:
int strcmp(const char *str1,const char *str2)
{
/*不可用while(*str1++==*str2++)来比较,当不相等时仍会执行一次++,
return返回的比较值实际上是下一个字符。应将++放到循环体中进行。*/
while(*str1 == *str2)
{
if(*str1 == '\0')
return0;
str1++;
str2++;
}
return *str1 - *str2;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询