首页 > 解决方案 > C++ 将 int 赋值给 char* 数组

问题描述

抱歉,如果以前有人问过这个问题,但我找不到任何对我的情况有帮助的东西。我正在尝试将整数分配给 char 数组中的索引。在这种情况下,将 33 分配到令牌数组的索引中。

char token[100];
int num = 33;
//Assigning num to this place in array
token[1] = num; //How do I make this work?

我希望 33 成为令牌数组中的索引,但是当我分配它并打印出来时,它给了我 '!',这是 33 的 ASCII 值。我想将 num 转换为字符串,然后将其分配给索引。那么如何将 num 转换为字符串,然后将其分配给令牌数组?

标签: c++arrays

解决方案


如果您的意思是,您有一个指向 char 数组的指针,您可以这样做。

char* token = new char[100];
    token[0] = 33; // You actually get '!' since char 33 is indeed '!'
std::cout << (int)token[0] << std::endl; // cast it to an int, 33 is back

如果要使用 char 指针数组,可以这样做:

char* token[100];
char* temp = new char; // You need a char* to store it since char is 1byte and int is 4byte
    *temp = 33; // or *temp = num; in your case
    token[0] = temp; // You still get '!' since char 33 is indeed '!'
std::cout << (int)*token[0] << std::endl; // cast it to an int

推荐阅读