如何在C ++中使用ascii将123之类的数字转换为字符串?

时间:2017-10-09 13:31:40

标签: c++ string

我想把一个像77这样的数字变成一个字符串,但是我不能使用ascii,因为它只是从0到9。有没有办法让数字成为一个字符串?所以这是最后的结果:你输入一个数字,它输出数字,但作为一个字符串。示例:输入:123;输出:" 123"

2 个答案:

答案 0 :(得分:2)

谁对ascii说了什么? C ++标准没有。

改为使用与平台无关的std::to_string(77)

参考:http://en.cppreference.com/w/cpp/string/basic_string/to_string

答案 1 :(得分:2)

每个数字都可以使用ASCII。数字123使用1,a 2和a 3,表示该值的字符串使用字符'1''2''3'

自己进行转换的方法是自己获取每个数字并将数字添加到'0'。像这样:

int value = 123
std::string result;
while (value != 0) {
    int digit = value % 10;
    char digit_as_character = digit + '0';
    result.insert(0, 1, digit_as_character);
    value = value / 10;
}

如果你是亲手做的话,这就是你要做的事情:

  • 从值开始,除以得到值的最后一位数 10,看着剩下的
  • 记下余数的数字
  • 将值除以10以删除最后一位数,因为您不需要 它已经了。