首页 > 试题广场 >

现在给你一个任务,写一个函数用来判定一个字符串是否比另一个更

[问答题]
现在给你一个任务,写一个函数用来判定一个字符串是否比另一个更 长。前提是你要用字符串库函数strlen,它的声明如下:
/* Prototype for library function strlen */ 
size_t strlen(const char *s);
最开始你写的函数是这样的:
/* Determine whether string s is longer than string t */ 
/* WARNING: This function is buggy */
int strlonger(char *s, char *t) {
return strlen(s) - strlen(t) > 0;
}
当你在一些示例数据上测试这个函数时,一切似乎都是正确的。进一步研究发现 在头文件stdio.h中数据类型size_t是定义成unsigned int的。
A.在什么情况下,这个函数会产生不正确的结果?
B.解释为什么会出现这样不正确的结果。
C.说明如何修改这段代码好让它能可靠地工作。
s 比 t 短时
无符号数只会被机器解释为正数
发表于 2021-06-29 08:57:48 回复(0)