关于C++中strlen(str)和sizeof(str)
Posted limorc
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于C++中strlen(str)和sizeof(str)相关的知识,希望对你有一定的参考价值。
首先我们来看一段测试吧
#include"stdio.h" main() char str[10] = "I am Limor宸"; printf("%d %d",sizeof(str),strlen(str));
输出的结果是:
从结果中我们可以看出sizeof(str)输出的是10而strlen(str)输出的结果是11那么是为什么呢?
我们来看看sizeof和strlen的区别
strlen在计算字符串长度的时候,是以‘\\0’为字符串结束的标志。
sizeof是以分类的数组的实际所占的内存空间大小来计算长度的。
我们再来看看如果给定的分配空间比实际占用空间长的情况:
#include"stdio.h" main() char str[50] = "I am Limor宸"; printf("%d %d",sizeof(str),strlen(str));
这时候我给str这个字符数组初始分配了50个空间,但是只占用了11个空间。
结果的话sizeof计算出来是50为str字符串数组所占用的实际空间
而strlen计算的结果是12,在后面没有被声明的空间没有被计算。
由此可见sizeof计算的是该数组占用的空间大小,strlen计算的是字符串的长度并吧‘\\0‘结尾符也算作一个单位但是null并不计算。
以上是关于关于C++中strlen(str)和sizeof(str)的主要内容,如果未能解决你的问题,请参考以下文章