strlen与sizeof的区别

本文介绍了C++中strlen和sizeof的区别。strlen计算字符串长度时不包括结束符'',而sizeof则返回变量所占内存大小,包括''。通过多个示例展示了它们在不同情况下的应用。
摘要由CSDN通过智能技术生成

在了解strlen与sizeof的区别之前,先来了解下字符数组:
char a[] = {‘C’,’+’,’+’,};//不含空字符’\0’。
char a1[] = {‘C’,’+’,’+’,’\0’};//显式包含空字符’\0’。
char a2[] = “C++”; //自动添加 ‘\0’字符串结束的空字符 a1=a2。
char a3[3] = “C++”;//错误,没有空间存放空字符’\0’。

一、strlen与sizeof的区别:

  • 1、strlen计算字符串的具体长度(只能是字符串),不包括字符串结束符。返回的是字符个数。

  • 2、sizeof计算声明后所占的内存数(字节大小),不是实际长度

  • 3、sizeof是一个取字节运算符,而strlen是个函数。

  • 4、sizeof的返回值=字符个数*字符所占的字节数

strlen(a) == 3 , sizeof(a) == 3
strlen(a1) == 3 , sizeof(a1) == 4//sizeof加’\0’的长度,strlen()不加
strlen(a2) == 3 , sizeof(a2) == 4//sizeof加’\0’的长度,strlen()不加
char a4[10] = “C++”;
strlen(a4) == 3 , sizeof(a4) == 10
char a5[] = “C++\n”;
strlen(a5) == 4 , sizeof(a4) == 5// ‘\n’占一个字符,sizeof加’\0’的长度,strlen()不加

二、代码示例:

#include “stdafx.h”  
#include “stdio.h”  
#include “string.h”  
  
int main(int argc, char* argv[])  
{
     
    //字符串数组方式  
    int a1;  
    int b1;  
    char str1[11]=0123456789;//字符串数组定义时注意为字符串个数+1  
    a1=sizeof(str1);//a1=11,统计到字符串结束符’\0’为止  
    b1=strlen(str1
  • 2
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值