作者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/m.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