[問題] strlen怪怪的

看板C_and_CPP作者 (添財)時間7年前 (2016/10/17 14:04), 編輯推噓2(2012)
留言14則, 10人參與, 最新討論串1/1
開發平台(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://www.ptt.cc/bbs/C_and_CPP/M.1476684268.A.8C8.html

10/17 14:18, , 1F
因為是你的code奇怪,不是他奇怪。把其他code也貼上來
10/17 14:18, 1F

10/17 14:20, , 2F
吧,不然這樣大家也沒辦法幫你找哪邊出問題
10/17 14:20, 2F

10/17 14:54, , 3F
你覺得你這樣問,大家會知道問題出在哪邊?
10/17 14:54, 3F

10/17 14:58, , 4F
八成移到pointer
10/17 14:58, 4F

10/17 14:58, , 5F
你移S1?
10/17 14:58, 5F

10/17 15:09, , 6F
記住 for 的條件判斷是每 loop 一次就判斷一次
10/17 15:09, 6F

10/17 15:10, , 7F
所以你每跑一圈迴轉到 for 時都會再跑一次 strlen()
10/17 15:10, 7F

10/17 15:11, , 8F
未看(也沒得看)先猜迴圈裡面有s1++;
10/17 15:11, 8F

10/17 16:12, , 9F
把迴圈內的code貼出來再說吧
10/17 16:12, 9F

10/17 16:16, , 10F

10/17 16:17, , 11F
嗯..應該錯在你隱藏的代碼裡QQ
10/17 16:17, 11F

10/17 17:49, , 12F
謝謝 迴圈裡真的有s++.. 感恩
10/17 17:49, 12F

10/18 00:14, , 13F
說好的水晶球呢
10/18 00:14, 13F

10/18 10:14, , 14F
水晶球,顯出景象
10/18 10:14, 14F
文章代碼(AID): #1O16diZ8 (C_and_CPP)