我正在尝试使用以下代码将整数放入字符串中:
int x = 42;
string num;
bool negative = false;
if(x < 0)
{
negative = true;
x = x * -1;
}
while(x > 0)
{
num.push_back(x % 10);
x = x / 10;
}
但是,当我尝试输出字符串时,它带有有线字符。您能帮忙这段代码中发生的事情吗?
编辑:PS。我想以手动方式进行。表示我不想使用to_string
会有奇怪的字符,因为当您使用时push_back()
,整数将被转换(或解释为)其对应的ASCII字符,然后被推回字符串中。
前进的方法是通过'0'
在整数值上加上a来将整数转换为字符。
while(x > 0)
{
num.push_back((x % 10) + '0'); //Adding '0' converts the number into
//its corresponding ASCII value.
x = x / 10;
}
'0'
向整数添加a的原因?ASCII值0为48,1为49,2为50,依此类推...因此,我们在这里基本上要做的是将48(ASCII值0)添加到相应的整数以使其等于其ASCII相等的。顺便提及,'0'
是等于48,因为它是在的ASCII值0
字符。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句