在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,就可以消除上面这个问题。

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值