作者fuct (添财)
看板C_and_CPP
标题[问题] strlen怪怪的
时间Mon Oct 17 14:04:24 2016
开发平台(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):
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 114.32.237.110
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/C_and_CPP/M.1476684268.A.8C8.html
1F:→ a27417332: 因为是你的code奇怪,不是他奇怪。把其他code也贴上来 10/17 14:18
2F:→ a27417332: 吧,不然这样大家也没办法帮你找哪边出问题 10/17 14:20
3F:→ Caesar08: 你觉得你这样问,大家会知道问题出在哪边? 10/17 14:54
4F:推 steve1012: 八成移到pointer 10/17 14:58
5F:→ steve1012: 你移S1? 10/17 14:58
6F:→ Schottky: 记住 for 的条件判断是每 loop 一次就判断一次 10/17 15:09
7F:→ Schottky: 所以你每跑一圈回转到 for 时都会再跑一次 strlen() 10/17 15:10
8F:推 Zero0910: 未看(也没得看)先猜回圈里面有s1++; 10/17 15:11
9F:→ suwako: 把回圈内的code贴出来再说吧 10/17 16:12
11F:→ hunandy14: 嗯..应该错在你隐藏的代码里QQ 10/17 16:17
12F:→ fuct: 谢谢 回圈里真的有s++.. 感恩 10/17 17:49
13F:→ tinlans: 说好的水晶球呢 10/18 00:14
14F:→ MOONRAKER: 水晶球,显出景象 10/18 10:14