strlen和sizeof区别

文章通过示例代码展示了C语言中strlen()函数计算字符串长度(不包括)和sizeof()运算符测量内存占用的不同。strlen(str1)至strlen(str5)的输出显示了strlen()是基于结束符来确定字符串长度,而sizeof()则返回变量所分配的总字节数,不受结束符影响。对于指针p,strlen()得到的是字符串长度,sizeof()得到的是指针本身的大小。
摘要由CSDN通过智能技术生成

1.strlen()
头文件:string.h
字符串处理函数,返回字符串的长度,不包括’\0’。
字符串的长度就是字符串中字符的数量。

2.sizeof()
运算符,计算占用内存空间的字节大小。

#include <stdio.h>
#include <string.h>

int main(char* argc, char* argv[]) {
    char str1[] = "abcd";
    char str2[] = "ab\0cd";
    char str3[] = {'a','b','c','d'};
    char str4[] = {'a','b','c','d','\0'};
    char str5[] = {'a','b','\0','c','d'};
    printf("strlen(str1)=%d\n", strlen(str1));
    printf("strlen(str2)=%d\n", strlen(str2));
    printf("strlen(str3)=%d\n", strlen(str3));
    printf("strlen(str4)=%d\n", strlen(str4));
    printf("strlen(str5)=%d\n", strlen(str5));
    printf("\n");

    printf("sizeof(str1)=%d\n", sizeof(str1));
    printf("sizeof(str2)=%d\n", sizeof(str2));
    printf("sizeof(str3)=%d\n", sizeof(str3));
    printf("sizeof(str4)=%d\n", sizeof(str4));
    printf("sizeof(str5)=%d\n", sizeof(str5));
    printf("\n");

    char* p = "abc";
    printf("strlen(p)=%d\n", strlen(p));
    printf("sizeof(p)=%d\n", sizeof(p));

    return 0;
}

输出:

strlen(str1)=4
strlen(str2)=2
strlen(str3)=6
strlen(str4)=4
strlen(str5)=2

sizeof(str1)=5
sizeof(str2)=6
sizeof(str3)=4
sizeof(str4)=5
sizeof(str5)=5

strlen(p)=3
sizeof(p)=8
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值