strlen
函数原型:
size_t strlen(char const* _Str ); //size_t就是无符号整型
sizeof
函数原型:
size_t sizeof(类型\对象\);//size_t就是无符号整型
他们的区别如何?
先看例子:
#include <stdio.h>
#include <string.h>
int main()
{
char buf[100];
sprintf(buf, "hello");
printf("strlen: %d\n", strlen(buf));
printf("sizeof: %d\n", sizeof(buf));
}
执行结果:
如图所得他们的区别:
strlen是指buf实际使用了的大小,hello刚刚好5个字符。
sizeof是指buf最大能使用的大小,前面定义了是100。
就如一个水杯的容量为500毫升,sizeof就是指这个;你把水杯装了一半的水,那么水就有250毫升,strlen就是指这个。