现在给你一个任务,写一个函数用来判定一个字符串是否比另一个更 长。前提是你要用字符串库函数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.说明如何修改这段代码好让它能可靠地工作。
