strlen 依赖于 string.h
#include <stdio.h>
#include <string.h>
int main(int argc, const char * argv[]) {
char s[] = "hello world";
printf("strlen:%d\n", strlen(s));
printf("strlen:%d\n", sizeof(s));
return 0;
}
输出结果:
strlen:11
strlen:12
“hello world” 在内存中末尾会追加 \0 用来标记字符串末尾
sizeof 会计算所有的长度(长度以字节数计,实际上一个char类型占用一个字节)
strlen 只计算实际字符串长度(长度以char类型的数量计,等于字节数),因此长度比sizeof少一个