我的代碼基本上是列出一個字符串,它是輸入的ASCII碼點,我下面的代碼很簡單,在這裏:C++:打印/分配簡單陣列打印亂碼
#include <iostream>
#include <string.h>
using namespace std;
int main() {
char str[20];
int result[20];
cin >> str;
for(int i = 0; i != strlen(str); i++) {
result[i] = (int)i;
}
for(int i = 0; i != 20; i++)
cout << result[i] << ", ";
}
當我運行它,不管是什麼輸入其輸出亂碼像未定義的存儲一堆像這樣:
0, 1, 2, 3, 4, 5, 1, -1217349408, -1220040795, -1220041307, -1076427112, 134514781, -1218903292, 134519344, -1076427096, 134514004, -1217411568, 134519344, -1076427048, 134514681,
我缺少的東西在簡單的我如何追加每個整數數組?
請注意這是一個簡單的例子,我的輸入不會超過20個字符。
編輯錯字在我的結果.. CIN >>結果CIN >>海峽
固定大小的char數組?我眼睛疼!在C++中使用'std :: string'。 – fredoverflow 2010-09-21 11:22:23
不要在循環退出條件中使用strlen - 對每個循環都進行此調用效率不高。首先將strlen存儲爲本地,因爲字符串在循環內不變。 – 2010-09-21 13:51:59