C ++打印从字符串字符派生的整数
Posted
技术标签:
【中文标题】C ++打印从字符串字符派生的整数【英文标题】:C++ Printing an integer derived from a string's character 【发布时间】:2015-05-12 18:19:42 【问题描述】:我想打印第一个数字。由于某种原因,它的打印结果是 49 而不是 1...
int n = 111111251;
string s = to_string(n);
int num = s[0];
cout << num << endl;
【问题讨论】:
打印 49 是因为 char 文字 '1' 的数值在您使用的编码中是 49。只是 couts[0]
要找出你使用的“编码”运行:locale
(Linux)或chcp
(Windows)。
【参考方案1】:
它打印出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
【讨论】:
【参考方案2】:49 是 1 的 ASCII 值。
希望我能帮上忙,
【讨论】:
更正确的说法是 49 是 '1' 的 ASCII 值。希望我有所帮助。:)【参考方案3】:在正确地将整数转换为字符串的同时,您将字符串中第一个元素的类型从“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;
【讨论】:
以上是关于C ++打印从字符串字符派生的整数的主要内容,如果未能解决你的问题,请参考以下文章