在字符串中添加一个字符

时间:2012-06-10 00:20:45

标签: c++ string concatenation

在C ++中:

如果我想将0x01添加到我要执行的字符串文本中:text += (char)0x01;

如果我想将0x02添加到我要执行的字符串文本中:text += (char)0x02;

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

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

3 个答案:

答案 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是一个多位数,你可以将其解析为数字,并使用相同的技术生成其相等的字符串。