C ++打印从字符串的字符派生的整数

时间:2015-05-12 18:19:42

标签: c++ string printing integer

我想打印第一个号码。由于某种原因,它打印出49而不是1 ...

 int n = 111111251;
 string s = to_string(n);
 int num = s[0];
 cout << num << endl;

3 个答案:

答案 0 :(得分:2)

打印49,因为那是ascii value of 1

如果您要打印字符,只需直接打印s[0],或将其正确转换回int即可。请考虑以下代码:

int main()
{
    int n = 111111251;
    string s = to_string(n);
    cout << s[0] << endl;

    int num = s[0];
    cout << num << endl;

    int num2 = s[0] - '0';
    cout << num2 << endl;

    return 0;
}

打印出来:

1
49
1

答案 1 :(得分:0)

49是ASCII值1。

希望我帮忙,

答案 2 :(得分:0)

在将整数转换为字符串时,将字符串中的第一个元素的类型从“char”更改为“int”。这会影响输出:字符表示仍为“1”,但数值为(ASCII)49(请查看http://en.wikipedia.org/wiki/ASCII)。

您可能需要char character = s[0]; cout << character << endl;int num = s[0]; cout << char(num) << endl;