代码还是简单,但是还是字符串长度无法弄清楚,请大家帮我讲讲好么?
//记事本编写,cl编译
#include <cstdio>
#include <string>
void main()
{
char _str1[5];
char _str2[5];
memset(_str1, '\0', sizeof(_str1));
memset(_str2, '\0', sizeof(_str2));
printf("str1:sizeof:%d[:%s\n",sizeof(_str1),_str1);
printf("str2:sizeof:%d[:%s\n",sizeof(_str2),_str2);
printf("str1:strlen:%d[:%s\n",strlen(_str1),_str1);
printf("str2:strlen:%d[:%s\n",strlen(_str2),_str2);
scanf("%s", _str1);
scanf("%s", _str2);
printf("str1:sizeof:%d[:%s\n",sizeof(_str1),_str1);
printf("str2:sizeof:%d[:%s\n",sizeof(_str2),_str2);
printf("str1:strlen:%d[:%s\n",strlen(_str1),_str1);
printf("str2:strlen:%d[:%s\n",strlen(_str2),_str2);
}
//两个字符串长度都<=5时打印输出正常,不抱错
//两个字符>5时有时正常,有时不正常(根据输入长度而定),有时可以输出正确的_str1,_str2,但是有时就不能正确输出结果了(正确是指和输入一致)
//两个字符>5时有时不报错,有时报错(根据长度而定)