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之前的元素个数)
这里就跟大家讲这一个知识点,避免大家出错,希望给大家带来帮助