数组strlen和sizeof常见误区

 1.计算字符串元素个数                                                                                                                    在计算字符串长度时我们通常会使用到strlen和sizeof这两个去计算字符串的长度,而他们的区别在哪呢?

这里我们假设给出一个字符串“abcdef”他的元素个数有几个呢?我们通过代码来实现。

 

 这里我也给大家注释了sizeof计算的是总的元素个数(包含\0),我们都知道字符串最后都隐藏了一个“\0”,sizeof会把“\0”也计算在内,而strlen计算的是有效的元素个数(\0之前的元素个数),通俗地说就是屏幕上的字符串有几个就是几个,我们运行代码看一下我们的结果

 这里呢我们看到sz的输出值为7,而len的输出值为6,这与我们解释的相符打击一定要牢记他们的区别,在做题中大家往往会忽略这些小的细节。接下来主包就出一道题来考一下大家

 这里我们定义了数组的下标,左下标是0,但是右下标我们应该怎样用strlen和sizeof分别表示出来呢?在解答这个问题之前我们先分别使用strlen和sizeof把数组arr1的长度打印出来看一下

注意:这里的空格也计算在内

这里的右下标应该怎样用strlen和sizeof表示呢?

大家想的结果跟我的一样吗?我来跟大家解释一下:这里我们数出来arr1数组有15个元素,所以对应的下标依次是0-14,而我们使用sizeof时计算的是16,所以要对应到相应的下标就要-2,而strlen计算的是结果为15,所以对应的下标就要用strlen-1结果才正确。

最后给大家再次总结一下: sizeof计算的是总的元素个数(包含\0)  

                                            strlen计算的是有效的元素个数(\0之前的元素个数)

这里就跟大家讲这一个知识点,避免大家出错,希望给大家带来帮助 

                    

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值