C语言strlen和sizeof的区别

211 阅读1分钟

1.strlen

2.sizeof


1.strlen

 size_t strlen ( const char * str );

strlen=string length

strlen是函数,头文件#include<string.h>

是用来求字符串长度的函数

 #include<string.h>
 #include<stdio.h>
 ​
 int main()
 {
     int num = 0;
     char arr[] = "abc";
     num = strlen(arr);
 ​
     printf("%d", num);
 ​
     return 0;
 }
 ​
 //结果 3

🔵 当直接存储字符串时,“abc”会在最后面自动加“\0”。

🔴当遇到“\0”时,停止读取,注意:“\0”只是作为结束标志,而不当成字符。

 #include<string.h>
 #include<stdio.h>
 ​
 int main()
 {
     int num = 0;
     char arr1[] = {'a','b','c','\0'};
     //char arr2[]={'a','b','c'};
     num = strlen(arr);
 ​
     printf("%d", num);
 ​
     return 0;
 }
 ​
 //计算arr1,结果为3
 //计算arr2,结果为42(随机数)

当使用上述字符数组来存储字符串时,必须在最后面主动加“/0”。


2.sizeof

sizeof是一个运算符,用来计算所占空间字节的大小。

sizeof(arr):求整个数组占的总字节大小

sizeof(arr[0]):求数组中元素占的字节大小

🔵 当直接存储字符串时,“abc”会在最后面自动加“\0”。

🔴由于sizeof是求空间字节大小,所以也需要包含“\0”。

 #include<stdio.h>
 ​
 int main()
 {
     int num = 0;
     char arr[] = "abc";
     num = sizeof(arr);
 ​
     printf("%d", num);
     return 0;
 }
 ​
 //结果 4