如何将 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];
例如,当我尝试编写 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];