0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

strlen和sizeof的异同

撞上电子 2023-12-13 08:00 次阅读


1,strlen函数

作用: 用于计算以空字符'\0'结尾的字符串的长度,即字符串中的字符个数,不包括空字符本身。

返回值:strlen返回一个size_t类型的值,表示字符串中字符的数量。

注意事项:

  • strlen 需要在运行时遍历字符串,直到遇到空字符才停止计数。
  • 如果字符串没有以'\0' 结尾,strlen可能导致未定义的行为。

#include #include
int main() {char str[] = "Hello, World!";size_t length = strlen(str);
printf("Length of the string: %zu\n", length);
return 0;}

2,sizeof运算符

作用:用于获取变量、数据类型或数组在内存中占用的字节数。
返回值:sizeof返回一个size_t类型的值,表示操作数占用的字节数。
注意事项:

  • sizeof是在编译时确定的,不需要运行时遍历数据结构。
  • 对数组使用sizeof可以获取整个数组的大小,但对指针使用sizeof只能获取指针本身的大小。

#include
int main() {char str[] = "Hello, World!";size_t size = sizeof(str);
printf("Size of the array: %zu bytes\n", size);
return 0;}

3,异同点

计算方式:strlen遍历字符串直到遇到空字符。sizeof在编译时计算大小。
适用对象:strlen适用于以空字符结尾的字符串。sizeof适用于变量、数据类型或数组。返回值:strlen返回字符的数量。sizeof返回字节数。字符串长度:strlen计算字符串长度时不包括空字符。sizeof计算字符串长度时包括空字符。综上所述,strlen和sizeof在功能和用法上有较大差异,前者主要用于处理字符串的长度,后者用于获取数据结构在内存中的大小。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 字符串
    +关注

    关注

    1

    文章

    552

    浏览量

    20147
  • 函数
    +关注

    关注

    3

    文章

    3904

    浏览量

    61311
  • 运算符
    +关注

    关注

    0

    文章

    163

    浏览量

    10948
收藏 人收藏

    评论

    相关推荐

    【C语言进阶】数组名和指针使用sizeof有什么不同?

    本文介绍一个比较常见的错误,是跟sizeof有关的,不知你是否有掌握呢?
    的头像 发表于 10-03 17:53 2299次阅读
    【C语言进阶】数组名和指针使用<b class='flag-5'>sizeof</b>有什么不同?

    C语言sizeofstrlen的区别

    大家好,我是嵌入式老林,从事嵌入式软件开发多年,今天分享的内容是C语言sizeofstrlen的区别,希望能对你有所帮助
    发表于 07-11 11:51 354次阅读

    【武汉华嵌】结构体的sizeof问题

    ; //sizeof 对象; 注意:sizeof是一个运算符,在C语言中是一个关键字,并不是函数,要和strlen区分开来。sizeof是求取所占的存储空间的所有字节数。
    发表于 03-22 16:26

    strlensizeof区别

    1.strlen(char*)函数求的是字符串的实际长度,它求得方法是从开始到遇到第一个'\0',如果你只定义没有给它赋初值,这个结果是不定的,它会从aa首地址一直找下去,直到遇到'\0'停止。char aa[10];cout
    发表于 02-10 10:44

    sizeofstrlen函数的区别在哪

    野指针是指指针指向的位置是不可知的,主要成因是什么?sizeofstrlen函数的区别在哪?链表和数组的区别在哪?
    发表于 12-24 07:19

    flash和EEPROM的异同是什么?

    FLASH有哪些类型?flash和EEPROM的异同是什么?
    发表于 01-20 06:15

    Android和Linux系统的异同点是什么?

    Android和Linux系统的异同点是什么?
    发表于 03-02 07:17

    字符串函数strlen的深入研究

    本系列是为了剖析crt库中intel模块下的那些函数的,那么我们去找找那里面有没有strlen的实现,呀!居然找到了,它就位于VC/crt/src/intel/strlen.asm里。打开看看
    的头像 发表于 03-26 16:01 6827次阅读
    字符串函数<b class='flag-5'>strlen</b>的深入研究

    sizeofstrlen到底有什么区别经典C语言面试题讲解

    基本定义1、sizeof是C/C++中的一个运算符,其作用是返回一个对象或者类型在内存中所占用的字节数。 注意:sizeof后面如果是类型则必须加括号,如 sizeof(char);而如果是变量名
    的头像 发表于 02-03 08:24 6962次阅读

    轮廓仪与粗糙度仪的异同

    有些朋友搞不清楚轮廓仪和粗糙度仪的异同,今天就给大家科普一下二者的异同
    发表于 12-02 14:50 2186次阅读

    C语言的sizeof操作符基础和经典问题

    在C语言中,sizeof是一个操作符(operator),而不是函数!其用于判断数据类型或者表达式长度(所占的内存字节数)。其有两种表达形式:
    的头像 发表于 04-04 17:39 2409次阅读
    C语言的<b class='flag-5'>sizeof</b>操作符基础和经典问题

    C语言模拟实现strlen的步骤

    strlen所作的仅仅是一个计数器的工作,它从内存的某个位置(可以是字符串开头,中间某个位置,甚至是某个不确定的内存区域)开始扫描,直到碰到第一个字符串结束符’\0’为止,然后返回计数器值(长度不包含’\0’)。
    的头像 发表于 06-29 15:48 1370次阅读
    C语言模拟实现<b class='flag-5'>strlen</b>的步骤

    详谈黑盒测试与白盒测试的异同及用例

    详谈黑盒测试与白盒测试的异同及用例
    的头像 发表于 08-19 17:07 5964次阅读
    详谈黑盒测试与白盒测试的<b class='flag-5'>异同</b>及用例

    电感和磁珠的异同及应用综述

    电感和磁珠的异同及应用综述
    发表于 06-24 10:28 30次下载

    C语言中strlensizeof的区别

    sizeofstrlen 放在一起考察,题目不难,只要你的C语言基本功扎实,做出来应该没问题。
    的头像 发表于 04-23 09:45 351次阅读