如何将 int 数组的 1 个元素转换为 string/char

How can I convert 1 element of an int array to a string/char

例如,当我尝试编写 arr[0] = 'y'; 并尝试打印它时,它将打印“121”,因为 121 在 ASCII table 中是 'y'。我如何转换它以便数组元素将其替换为实际的 'y'?

int example [2] = {16,2};

如何将 16 转换为字母 'y' 以便如果我打印整个数组,它会打印 "y2" 而不是 1212

打印格式:

int r[2] = {12,43};
    for(int i=0; i<2;i++){
        cout << r[i];
    }
short my_short = 12;
char my_character = static_cast<char>(my_short);

std::cout << my_character << std::endl;

将打印一个字符

std::ostream 有一个用于字符的重载运算符<<,它允许您打印字符而不是打印整数

字母与数字联系起来的一种简单方法是使用std::map

std::map<int, char> conversions;
//...
map[16] = 'y';
//...
std::cout << map[16] << std::endl;

您也可以使用字符数组:

static const char conversion_array[] =
{'F', ..., 'y', ...};
std::cout << conversion_array[16] << std::endl;

数组是同构的。数组的所有元素都具有相同的类型。当你有一个 int 的数组时,所有元素的类型都是 int.

当您将 int 插入字符流时,输出将是一个数字,格式等同于 num_put::put()

所以,如果你想看到像y这样的输出,那么你必须插入一个字符,或者一个字符串。如果你想输出一个对象像一个字符,另一个像一个整数,那么这些对象必须有不同的类型。

字符是整数(经过特殊处理),并且可以与 int 相互转换(尽管并非所有 int 值都可以表示为 char)。使用此类转换的示例:

int example [2] = {'y',2};
std::cout << char(example[0]) <<  example[1];