最近在做项目时,用strlen测试的字符串长度传递到另外一个函数中,结果由于含有'0'导致出错。应该是遇到了我下面的第二种情况,测试代码如下:
#include<stdio.h>
#include<string.h>
int main()
{
int len1,len2,len3;
char *str = "hello\0world";
char str2[] = {'h','e','l','l','o',0,'w','o','r','l','d'};
char *str3 = "hello0world";
len1 = 0;
len2 = 0;
len1 = strlen(str);
len2 = strlen(str2);
len3 = strlen(str3);
printf("len1 = %d,len2 = %d,len3 = %d \r\n",len1,len2,len3);
return 0;
}
测试结果: