1

在 C++ 中:

如果我想添加0x01到字符串文本中,我会这样做:text += (char)0x01;

如果我想添加0x02到字符串文本中,我会这样做:text += (char)0x02;

如果我想添加0x0ii是 0 到 9 之间的无符号数int),我该怎么办?

编辑:我可能不太清楚。所以 0x01,我的意思是 Hex 中给出的字符为 01。所以在上面如果 i 是整数(十进制)说 3,那么我想添加 0x03(所以这不是十进制中给出的字符 48 + 3)。

4

3 回答 3

4

你可以直接做

text += (char)i;

因为0x0i == iifi介于 0 和 9 之间。

于 2012-06-10T00:22:51.907 回答
1

另一种可能性——你可以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”的字符串。

于 2012-06-10T00:35:23.667 回答
0

您应该生成它的 ASCII 值。'0'是 48 并且'9'是 9 + 48

text += (char)( i + 48 ) ;

如果i是多位数字,您可以将其解析为数字并使用相同的技术生成其相等的字符串。

于 2012-06-10T00:23:43.530 回答