我的代码基本上是列出一个字符串,它是输入的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