[问题] strlen怪怪的

楼主: fuct (添财)   2016-10-17 14:04:24
开发平台(Platform): (Ex: Win10, Linux, ...)
win10
编译器(Ex: GCC, clang, VC++...)+目标环境(跟开发平台不同的话需列出)
minGW
额外使用到的函数库(Library Used): (Ex: OpenGL, ...)
strlen
问题(Question):
char *s1= "(a*b)";
int a=strlen(s1);
看结果a是等于5没错,但
for(int i=0;i<strlen(s1);i++)
却只执行三次..
为什么呢 真奇怪啊
喂入的资料(Input):
预期的正确结果(Expected Output):
错误结果(Wrong Output):
程式码(Code):(请善用置底文网页, 记得排版)
补充说明(Supplement):
作者: a27417332 (等号卡比)   2016-10-17 14:18:00
因为是你的code奇怪,不是他奇怪。把其他code也贴上来吧,不然这样大家也没办法帮你找哪边出问题
作者: Caesar08 (Caesar)   2016-10-17 14:54:00
你觉得你这样问,大家会知道问题出在哪边?
作者: steve1012 (steve)   2016-10-17 14:58:00
八成移到pointer你移S1?
作者: Schottky (顺风相送)   2016-10-17 15:09:00
记住 for 的条件判断是每 loop 一次就判断一次所以你每跑一圈回转到 for 时都会再跑一次 strlen()
作者: Zero0910 (みくに最高≧▽≦)   2016-10-17 15:11:00
未看(也没得看)先猜循环里面有s1++;
作者: suwako   2016-10-17 16:12:00
把循环内的code贴出来再说吧
作者: hunandy14 (Charlott.HonG)   2016-10-17 16:16:00
http://imgur.com/jS5gGgw.png嗯..应该错在你隐藏的代码里QQ
楼主: fuct (添财)   2016-10-17 17:49:00
谢谢 循环里真的有s++.. 感恩
作者: tinlans ( )   2016-10-18 00:14:00
说好的水晶球呢
作者: MOONRAKER (㊣牛鹤鳗毛人)   2016-10-18 10:14:00
水晶球,显出景象

Links booklink

Contact Us: admin [ a t ] ucptt.com