C++ 向字符串添加一个字符
在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
0x01
,我会这样做:text+=(char)0x01
如果我想在字符串文本中添加0x02
,我会这样做:text+=(char)0x02
如果我想添加0x0i
(wereI
是一个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以十六进制给出的字符。谢谢你的回答!我会调查的。谢谢你的回答!我会调查的。