在C ++中:
如果我想将0x01
添加到我要执行的字符串文本中:text += (char)0x01
;
如果我想将0x02
添加到我要执行的字符串文本中:text += (char)0x02
;
如果我想添加0x0i
(i
是0到9之间的非int
),我该怎么办?
答案 0 :(得分:4)
你可以直接做
text += (char)i;
0x0i == i
如果i
介于0到9之间。
答案 1 :(得分: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”。
答案 2 :(得分:0)
您应该生成其ASCII值。 '0'
为48,'9'
为9 + 48
text += (char)( i + 48 ) ;
如果i
是一个多位数,你可以将其解析为数字,并使用相同的技术生成其相等的字符串。