strlen函数和sizeof各自的作用及两者之间的区别

strlen函数

strlen函数的作用:得到字符串的有效长度
strlen函数的返回值:字符串有效长度(单位是字节)
strlen函数遇到‘\0’停止,计算结果不包括’\0’
需引用字符串函数头文件:#include<string.h>

举以下例子,方便大家进一步了解掌握:

#include<stdio.h>
#include<string.h>   //不要忘了引用字符串函数头文件
int main()
{
    
    
	char arr[] = "abcdefg";  //创建一个数组,以字符串abcdefg为例
	int ret = strlen(arr);     //用一个int型变量接收  从a开始向后读,只到遇到'\0'停止,不包括'\0',是7个字节
	printf("%d", ret);         //打印字符串返回值
//  printf("%d",strlen(arr));	 也可以像这样直接打印
 	return 0;          
}

输出结果为:
在这里插入图片描述

字符串:字符串写在双引号里,以’\0’结尾,但’\0’不显示。如上述的“abcdefg”,g后有一个隐藏的’\0’.

sizeof

sizeof的作用:计算变量或者类型在内存中所占空间的大小
sizeof的返回值:变量或者类型在内存中所占空间的大小(单位是字节)

需要注意的是,sizeof并非是函数,而是一个运算符(比如“+”就是一种运算符)。
举以下例子,方便大家进一步了解掌握:

#include<stdio.h>
int main()
{
    
    
	printf("%d\n",sizeof(char));      //计算char类型在内存中占几个字节
	printf("%d\n",sizeof(short));     //计算short类型在内存中占几个字节
	printf("%d\n",sizeof(int));       //计算int类型在内存中占几个字节  
	return 0;
}

输出结果为:
在这里插入图片描述

strlen函数与sizeof的区别

#include<stdio.h>
#include<string.h>  //引用字符串函数头文件
int main()
{
    
    
	char arr[] = "abcdefg";        
	printf("%d\n", strlen(arr));   //从a向后读取,到'\0'停止,不包括'\0',为7个字节
	printf("%d\n", sizeof(arr));   //从a向后读取,获取数组的总大小,包括'\0',为8个字节
	return 0;
}

核心区别即strlen不包括’\0’,sizeof包括’\0’
输出结果为:
在这里插入图片描述

最后,给大家几点使用时的建议:
1.strlen函数只能用于计算字符串有效长度,这一点要牢记
2.strlen函数使用时不要忘了引用头文件#include<string.h>
ps:上面全是博主犯过的错误。

猜你喜欢

转载自blog.csdn.net/qq_73390155/article/details/129642079