C语言中strlen()函数原型为:
size_t strlen(char const *string);
首先,strlen的返回值为size_t类型,这个类型在头文件stddef.h中定义的,他是一个无符号整型类型。
那么:
if( strlen(x) >= strlen(y) )...与
if(strlen(x) - strlen(y) >= 0 )...含义是不一样的。因为strlen的结果是无符号数,所以操作符>=左边
也将是无符号数,而无符号数是不可能为负的。
其次,应当注意strlen();函数是检测字符串结束标志 '\0' 的。
若:
char x[5] = "hello" 那么strlen(x)=?就无法确定了。
最后,strlen()与sizeof()比较
若定义:
char a[100] = "abcdefg";
strlen(a) = 7;
sizeof(a) = 100.