打印
[经验分享]

strlen sizeof的区别

[复制链接]
1412|33
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
primojones|  楼主 | 2024-2-18 20:31 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

1、C语言中strlen函数用来求字符串的长度
      头文件:string.h
     函数原型:size_t strlen(const char *str);
     参数str表示要求长度的字符串;
    功能:strlen()函数从字符串的开头位置依次向后计数,直到遇到‘\0’为止,停止计数。返回的值中不包括‘\0’
2、sizeof单目运算符
     它的参数可以是数组、指针、类型、对象、函数等
例:char s[]="ILOVEC";
        strlen(s)=6
        sizeof(s)=7 //对 sizeof 而言,因为缓冲区已经用已知字符串进行了初始化,其长度是固定的,所以 sizeof 在编译时计算缓冲区的长度。也正是由于在编译时计算,因此 sizeof 不能用来返回动态分配的内存空间的大小。

使用特权

评论回复
沙发
10299823| | 2024-3-4 14:26 | 只看该作者
strlen 是一个函数,用于计算字符串的长度。
它返回字符串中字符的个数,不包括结束符 '\0'。
strlen 需要包含头文件 <string.h>。
strlen 只有在运行时才能确定字符串的长度,因为它需要遍历字符串直到遇到结束符。
示例:int len = strlen("hello");,这里 len 的值为 5。

使用特权

评论回复
板凳
alvpeg| | 2024-3-4 14:38 | 只看该作者
strlen在计算字符串长度时不会考虑字符串缓冲区的大小,只计算实际字符的数量。

使用特权

评论回复
地板
febgxu| | 2024-3-7 12:13 | 只看该作者
sizeof是一个C语言运算符,用于计算数据类型或变量所占的内存字节数。它可以用于计算数组、指针、类型、对象、函数等的大小。sizeof返回的是字节(byte)数量,而不是字符数量。

使用特权

评论回复
5
kkzz| | 2024-3-9 17:14 | 只看该作者
sizeof计算的是数据类型或对象的大小,而不是字符串的长度。如果要计算字符串的长度,应该使用strlen函数。

使用特权

评论回复
6
lzmm| | 2024-3-9 21:19 | 只看该作者
strlen 返回的是字符串中字符的个数,而 sizeof 返回的是变量或类型在内存中的大小(以字节为单位)。

使用特权

评论回复
7
updownq| | 2024-3-11 13:48 | 只看该作者
strlen 和 sizeof 在C语言中都是用来计算有关数据大小的信息,但它们的本质和用途完全不同

使用特权

评论回复
8
wangdezhi| | 2024-3-11 15:45 | 只看该作者
sizeof操作符在计算数组大小时,会返回包括数组末尾的元素在内的总字节数。

使用特权

评论回复
9
beacherblack| | 2024-3-11 21:04 | 只看该作者
strlen是一个字符串处理函数,用于计算字符串的长度。它的参数是一个字符串指针,返回值是字符串的长度(不包括字符串末尾的空字符'\0')。strlen的实现原理是遍历字符串,直到遇到空字符'\0'为止。

使用特权

评论回复
10
youtome| | 2024-3-12 10:54 | 只看该作者
strlen 是在运行时计算字符串的长度,而 sizeof 是在编译时确定变量或类型的大小。

使用特权

评论回复
11
xiaoyaodz| | 2024-3-12 12:44 | 只看该作者
strlen是一个C语言标准库函数,需要包含头文件#include <string.h>,而sizeof是一个运算符,不需要包含头文件。

使用特权

评论回复
12
biechedan| | 2024-3-12 17:07 | 只看该作者
strlen是一个函数,它用于计算字符串的长度,即从字符串的第一个字符开始直到遇到第一个空字符('\0')为止的字符数量。它返回的是一个整型值,表示字符串的实际长度,不包括终止的空字符。需要注意的是,如果字符串没有被正确初始化或不包含终止的空字符,strlen可能会导致未定义的行为。

使用特权

评论回复
13
51xlf| | 2024-3-14 17:52 | 只看该作者
sizeof是一个运算符,它在编译时计算对象或类型所占用的内存大小,并以字节为单位返回这个大小。与strlen不同,sizeof可以用于任何类型的数据,包括数组、指针、结构体、联合体等。当用于数组时,它会返回整个数组所占用的内存大小,而不仅仅是数组中某个元素的大小。此外,当用于指针时,sizeof返回的是指针本身的大小,而不是指针所指向的内存块的大小。

使用特权

评论回复
14
vivilyly| | 2024-3-15 13:02 | 只看该作者
strlen 只适用于字符串(以 '\0' 结尾的字符数组),而 sizeof 可以用于任何数据类型。

使用特权

评论回复
15
10299823| | 2024-3-15 13:38 | 只看该作者
strlen是一个C语言标准库函数,用于计算字符串的实际长度。它返回值是字符串中字符的数量,直到遇到第一个终止字符'\0'为止。需要注意的是,strlen函数不计算终止字符'\0'本身。

使用特权

评论回复
16
phoenixwhite| | 2024-3-15 17:31 | 只看该作者
sizeof是一个编译时操作符,它返回的是编译时就确定的大小,而strlen是一个运行时函数,它返回的是程序运行时的实际长度。

使用特权

评论回复
17
updownq| | 2024-3-15 18:15 | 只看该作者
char str[] = "hello";

// strlen计算字符串的长度,不包括'\0'
int length = strlen(str); // length 的值为 5

// sizeof获取整个数组的大小,包括'\0'
int size = sizeof(str); // size 的值为 6

使用特权

评论回复
18
uiint| | 2024-3-15 18:41 | 只看该作者
sizeof运算符在处理指针时,返回的是指针变量的内存大小,而不是它指向的数据类型的大小。

使用特权

评论回复
19
mmbs| | 2024-3-15 19:04 | 只看该作者
sizeof 是一个操作符,用于获取变量、类型或对象在内存中的大小(以字节为单位)。
它返回的是编译时确定的大小,因此速度更快。

使用特权

评论回复
20
sdCAD| | 2024-3-15 20:33 | 只看该作者
strlen用于测量字符串的实际长度,而sizeof用于确定任何数据类型或对象在内存中的大小。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

28

主题

1084

帖子

0

粉丝