C++ 向字符串添加一个字符

C++ 向字符串添加一个字符,c++,string,concatenation,C++,String,Concatenation,在C++中: 如果我想在字符串文本中添加0x01,我会这样做:text+=(char)0x01 如果我想在字符串文本中添加0x02,我会这样做:text+=(char)0x02 如果我想添加0x0i(wereI是一个0到9之间的非单数int),我该怎么办 编辑:我可能不太清楚。所以说0x01,我指的是十六进制中的字符01。因此,在上面的例子中,如果我是整数(十进制)比如说3,那么我想加上0x03(所以这不是十进制中给出的字符48+3)。您可以直接这样做 text += (char)i; 因为0

在C++中:

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

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

如果我想添加
0x0i
(were
I
是一个0到9之间的非单数
int
),我该怎么办

编辑:我可能不太清楚。所以说0x01,我指的是十六进制中的字符01。因此,在上面的例子中,如果我是整数(十进制)比如说3,那么我想加上0x03(所以这不是十进制中给出的字符48+3)。

您可以直接这样做

text += (char)i;
因为
0x0i==i
如果
i
介于0和9之间,则可以直接执行

text += (char)i;

因为
0x0i==i
如果
i
介于0和9之间,则应生成其ASCII值<代码>'0'是48,
'9'
是9+48

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

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

您应该生成其ASCII值<代码>'0'是48,
'9'
是9+48

text += (char)( i + 48 ) ;
如果
i
是一个多位数字,您可以将其解析为数字,并使用相同的技术生成相等的字符串。

另一种可能性——您可以使用
push_back
。由于它将字符串的
char\u类型
作为其参数类型,因此不需要显式转换:

text.push_back(i);
公平地说,我应该补充一点,您也不需要使用
+=
进行显式强制转换。简单地
text+=i可以正常工作。例如:

std::string text; 
for (int i=0; i<9; i++)
     text += i;
std::字符串文本;
对于(int i=0;i另一种可能性——您可以使用
push_back
。由于它将字符串的
char_类型
作为其参数类型,因此不需要显式强制转换:

text.push_back(i);
公平地说,我应该补充一点,您实际上也不需要使用
+=
进行显式强制转换。只需
text+=I;
就可以了。例如:

std::string text; 
for (int i=0; i<9; i++)
     text += i;
std::字符串文本;

对于(int i=0;iHe不想要
'i'
,他想要
i
,因此不需要添加到48。这就是为什么他的示例是
text+=(char)0x01
,而不是
text+=(char)0x01+48
如果你是对的,那么这个问题的重点是什么?我认为他的前两行是不正确的。他想连接字符,但他的十六进制数字说你是对的。他不想要
'I'
,他想要
I
,所以没有必要添加到48。这就是为什么他的示例是
text+=(char)0x01,而不是
文本+=(字符)0x01+48如果你是对的,那么这个问题的重点是什么?我认为他的前两行是不正确的。他想连接字符,但他的十六进制数字说你是对的。
text
的类型是什么?你想实现什么?@dirkgent:text是一个字符串。所以我也想添加字符串(即,使其变长一个字符)以十六进制表示的字符由0i表示。
文本的类型是什么?
?您试图实现什么?@dirkgent:文本是一个字符串。因此,我想将该字符串也添加进去(即,使其变长一个字符)0i以十六进制给出的字符。谢谢你的回答!我会调查的。谢谢你的回答!我会调查的。