字符串中sizeof和strlen的区别

sizeof算的整个数组的大小和数据类型所占空间大小,strlen算的是有效字符的大小

sizeof()

#include <stdio.h>

int main()
{
    char cdata[128];

    printf("cdata=%d\n",sizeof(cdata));//计算数组大小
	printf("int=%d\n",sizeof(int));//计算数据类型所占空间大小
	printf("char=%d\n",sizeof(char));
	printf("float=%d\n",sizeof(float));
	printf("int*=%d\n",sizeof(int*));//64平台指针所占空间是8字节;32平台指针所占空间是4字节
	printf("char*=%d\n",sizeof(char*));
	printf("float*=%d\n",sizeof(float*));

	return 0;
 } 

strlen()

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

int main()
{
	char cdata2[]="hello";
	char cdata3[6]={'h','e','l','l','o'};

	printf("cdata=%d\n",strlen(cdata2));//直接计算数组中有效字符个数
	printf("cdata1=%d\n",strlen(cdata3));//需要加上'\n'到数组个数总数中,才会计算出'\n'前面的有效字符,否则会出现错误
	printf("cdata=%d\n",sizeof(cdata2));//这里长度有算上结束符'\n'
	printf("cdata1=%d\n",sizeof(cdata3));

	return 0;
 } 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值