【发布时间】:2018-04-26 12:49:37
【问题描述】:
我是 C++ 新手,我正在尝试创建一个函数,该函数接受一个数字数组并将这些数字转换为 ASCII 字符,即 int 为字符串。当我尝试输出字符串时,我得到随机字符。我搜索了教程,一个建议是我应该添加一个字符串终止符,我这样做了,但它似乎没有解决它,我找不到可以解决这个问题的答案。
即我希望下面的代码打印“Hello”。
#include <iostream>
#include <string>
char* intToString(int* array, int size)
{
char string[size + 1];
string[size] = '\0';
for (int i = 0; i <= size; i++)
string[i] = array[i];
return string;
}
int main()
{
int my_array[5] = {72, 101, 108, 108, 111};
int size = 5;
std::cout << intToString(my_array, size);
return 0;
}
【问题讨论】:
-
你错过了
string[i] = itoa(array[i]);的内容,因为你得到的随机字符不是你想要的数字的字符表示。 -
您包含
#include <string>,但不要使用std::string(C++ 字符串)。 -
在你的代码中它应该是
i<size,因为array[size]是未定义的。
标签: c++ arrays string function