char str[10]="";
scanf("%s",str); 为什么我输入超过10个数字
printf("%s",str); 可以显示超过十个数字? 但是如果输入太多就不行(停止回应)
sizeof(str);会是10 输入超过10个字还是10
strlen(str);会是0 为什么? 如果有默认值 那电脑会自动加'\0' 便会是对的
然后我在下面加for循环跑比如说16次因为我输入16个字
也是照样printf出16个字。
overflow 啊, 盖掉某些东西还可以跑但会不正常sizeof 回传阵列大小 strlen 从基底读到第一个 \0
限制字数, 例如限制 5 byte 要用 %5s, 不然会继续写入然后后面的程式码就被覆蓋惹 QQ
不管我输入几个字 strlen都还是0耶 除非事先宣告
作者:
dirkc (3781615)
2014-11-19 09:55:00可以把code贴上来,多半是使用的问题,strlen的实作很单纯
会自动容错一点点,scanf会帮你加上\0不过还是计算好字串长度比较保险