strlen求字符串长度
#include <stdio.h>
main()
{
char *a="ATSn0\121";
char *b="ATSn01\21";
char *c="ATS\n0121";
char *d="ATSn\0121";
char *e="ATSn'\0'121";
char f[1]={'c'};
char g[2]={'c',0x00};
printf("%d\n",strlen("ATS\n012\1\\"));
printf("%d\n",strlen(a));
printf("%d\n",strlen(b));
printf("%d\n",strlen(c));
printf("%d\n",strlen(d));
printf("%d\n",strlen(e));
printf("%d\n",strlen(f));
printf("%d\n",strlen(g));
}
输出结果:
“\”的位置影响了strlen的结果,strlen扫描到'\0'则停止,这些都是明面上的原因,结合输出分析下具体原因,还有f和g的原因。
这些原因应该可以解释strlen()的方法了吧,求高人总结.
想养布偶的时颜
12 years, 7 months ago