新手c语言小白第一篇博客strlen() 和sizeof() 的区别
  sTrA8weGqwq0 2023年12月23日 74 0

最近在学习c语言 然后刷课时看到这个 strlen()函数 然后作为小白的我也是去跟着教程打了 然后报错 去网上查了才知道这个是<cstring>库里面的函数 然后是看到有个弹幕就说用不了的可以用sizeof()这个函数然后就去试了试 结果和教程上的输出结果并不一样 于是就去网上找了相关资料 然后就记录分享一下有什么不对的地方还请各位大佬指出

这两个函数都与计算内存大小有关,但是它们作用是不太相同

然后这边也是打了一下

新手c语言小白第一篇博客strlen() 和sizeof() 的区别_字节数

运行结果为

新手c语言小白第一篇博客strlen() 和sizeof() 的区别_字符串_02

然后比较重要的一点就是

{‘a’,'b','c'}数组在末尾结束时候不会自动添加'\0'收尾

相反"abc"在结尾时会自动添加'\0'收尾。

strlen是计算实际长度所以前两个输出结果为3

然后第三个是在结尾添加了"\0"结尾所以输出4

第四个没有\0则是3

然后第一张图片也注释了这边就再写一下,内容来源与网上查找的资料

sizeof() 和 strlen() 的主要区别在于:

  • sizeof() 是一个运算符,而 strlen() 是一个库函数。
  • sizeof() 计算的是变量或类型所占用的内存字节数,而 strlen() 计算的是字符串中字符的个数。
  • sizeof() 可以用于任何类型的数据,而 strlen() 只能用于以空字符 '\0' 结尾的字符串。
  • sizeof() 计算字符串的长度,包含末尾的 '\0',strlen() 计算字符串的长度,不包含字符串末尾的 '\0'。

sizeof() 函数是一个运算符而不是函数,用于计算一个类型或变量所占用的内存字节数。可以用它来获取任何类型的数据的字节数,包括基本数据类型、数组、结构体、共用体等等。

strlen() 函数用于计算一个字符串的长度,即它所包含的字符个数(不包括字符串结尾的空字符 '\0')。

需要注意的是,strlen() 函数只能用于计算以空字符 '\0' 结尾的字符串的长度,如果字符串中没有空字符,则 strlen() 函数的行为是未定义的

然后差不多就这些了吧然后 就当写的第一篇文章了


【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年12月23日 0

暂无评论

推荐阅读
sTrA8weGqwq0