先附上code:
http://codepad.org/EKYayf7M
會發現回傳的字串在開頭常會多一些亂碼,而且長度比原本要來的更長(多出來的位數就是亂碼QAQ)
以下圖片:(反白部分為不應出現的亂碼或0或空格)
https://i.imgur.com/Y90AwIY.png
https://i.imgur.com/q5XWEUK.png
https://i.imgur.com/ihlbRKI.png
https://i.imgur.com/ANSMRyn.png
https://i.imgur.com/DQYJCRs.png
https://i.imgur.com/Sw88fOb.png I
https://i.imgur.com/1KWPQcF.png
https://i.imgur.com/QRaDkHS.png
我猜應該是處裡可能多出來的那一位數時出錯造成的
但不知道到底錯在哪裡QAQ
懇請大神指點<(_ _)>
你可能有興趣的文章...
全部留言
先推個問問題的方法👍 其實問題應該是你不能初始變數長度的字元陣列,可以參考: https://stackoverflow.com/questions/17332360/initializing-variable-length-array 這樣它的長度可能不會是你想要的 不過STL裡面的vector和string都是可以初始變數長度的資料結構,所以你可以把 char a[len],b[len],c[len+1];// c 字串放答案 for(i=0; i < len ;i++) a[i] = b[i] = c[i] = 0;// 字串歸 0 c[len] = 0; 換成 string a(len, 0), b(len, 0), c(len+1, 0); 這樣好像就可以了 可以把string當成字元陣列用絕對沒問題 啊如果還是想要用char[]的話還是可以用一些分配記憶體的方式來初始化吧,只是我不會 最後一件不是很重要的事 如果兩個數的其中一個是0相乘會輸出很多0