在 C++ 中:
如果我想添加0x01
到字符串文本中,我会这样做:text += (char)0x01
;
如果我想添加0x02
到字符串文本中,我会这样做:text += (char)0x02
;
如果我想添加0x0i
(i
是 0 到 9 之间的无符号数int
),我该怎么办?
编辑:我可能不太清楚。所以 0x01,我的意思是 Hex 中给出的字符为 01。所以在上面如果 i 是整数(十进制)说 3,那么我想添加 0x03(所以这不是十进制中给出的字符 48 + 3)。
在 C++ 中:
如果我想添加0x01
到字符串文本中,我会这样做:text += (char)0x01
;
如果我想添加0x02
到字符串文本中,我会这样做:text += (char)0x02
;
如果我想添加0x0i
(i
是 0 到 9 之间的无符号数int
),我该怎么办?
编辑:我可能不太清楚。所以 0x01,我的意思是 Hex 中给出的字符为 01。所以在上面如果 i 是整数(十进制)说 3,那么我想添加 0x03(所以这不是十进制中给出的字符 48 + 3)。
你可以直接做
text += (char)i;
因为0x0i == i
ifi
介于 0 和 9 之间。
另一种可能性——你可以push_back
改用。由于它将字符串char_type
作为其参数类型,因此您不需要显式强制转换:
text.push_back(i);
公平地说,我应该补充一点,你真的不需要一个明确的演员表+=
。只需text += i;
正常工作。例如:
std::string text;
for (int i=0; i<9; i++)
text += i;
使用text += i;
或text.push_back(i);
,这将产生一个包含:“\x00\x01\x02\x03”的字符串。
您应该生成它的 ASCII 值。'0'
是 48 并且'9'
是 9 + 48
text += (char)( i + 48 ) ;
如果i
是多位数字,您可以将其解析为数字并使用相同的技术生成其相等的字符串。