2000字范文,分享全网优秀范文,学习好帮手!
2000字范文 > 在c语言中strlen是什么 C语言中strlen和sizeof

在c语言中strlen是什么 C语言中strlen和sizeof

时间:2024-07-15 10:57:05

相关推荐

在c语言中strlen是什么 C语言中strlen和sizeof

定义

sizeof是C/C++中的一个运算符(关键字),计算对象或者类型在内存中所占用的字节数。

strlen是C语言中的库函数,计算字符串长度,不包括尾0。

引用头文件#include。

库函数原型:size_t strlen(const char *s)

注:sizeof是关键字,不是函数。strlen是函数。

举例

char test[20] = “hello”;

char *test1 = “hello!”;

char test2[] = “hello!!”;

strlen(test) //5 strlen计算的是字符串的实际长度,不包括尾0,以第一个’\0’为结束符。

sizeof(test) //20 定义的char型数组,占用了20个字节。

strlen(test1) //6 trlen计算的是字符串的实际长度,不包括尾0,以第一个’\0’为结束符。

sizeof(test1) // 8 计算了指针类型所在的字节数,取决于32/64位机,32位占4字节,64位占8字节。

strlen(test2) //7 strlen计算的是字符串的实际长度,不包括尾0,以第一个’\0’为结束符。

sizeof(test2) // 8 定义的char型数组,占用了8个字节,其中包括了’\0’为结束符。

strlen的返回值为unsigned int类型,为无符号。

1.if( strlen(test) >= strlen(test2) )

2.if (strlen(test) - strlen(test2) >= 0 )

3.if( strlen(test) >= 2 )

4.if (strlen(test) - 10>= 0 )

两个表达式看起来是一样的效果。第1,3个表达式写法正确,第2,4个表达式因为strlen的返回值为unsigned int类型,为无符号,所以表达式永远为真。

如果把strlen的返回值强制转换为int,就可以消除上面这个问题。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。