时间:2017/06/05 11:30
一.
用
strlen
()求字符串的长度及与sizeof()的区别
库函数
strlen
的原型为:
size_t strlen( char const *string );
strlen
返回一个类型为
size_t
的值。这个类型是在头文件
stddef.h
中定义的,它是一个无符号整型类型
。
在表达式中使用无符号数可能导致不可预期的结果。例如,下面两个表达式看起来是相等的:
if( strlen(str1) >= strlen(str2) )…
if( strlen(str1) - strlen(str2) >= 0 )…
但事实上它们是不相等的,第
1
条语句会按照预想的那样工作,但第
2
条语句的结果将永远是真的。
strlen
的结果是无符号数,所以操作符
>=
左边的表达式也将是无符号数,而无符号数决不可能是负的。表达式中如果同时包含了无符号数和有符号数,可能会产生奇怪的结果。和上面的一对语句一样,下面两条语句并不相等,原因相同。
if( strlen(str1) >=
1
0 )…
if( strlen(str1) -