【发布时间】:2019-12-16 12:34:48
【问题描述】:
我正在尝试将 char 数值转换为 c++ 中的整数。 例如:
char x ='0';
int intX = x-'0';
这行得通,但是当我尝试对大于 10 的数字做同样的事情时,它会吓坏了。 例如:
char onuc = '13';
cout<<int(onuc);
输出是 51。
请帮忙谢谢:)
【问题讨论】:
-
使用
std::stoi。参考:en.cppreference.com/w/cpp/string/basic_string/stol. -
atoi 有什么问题?
-
它适用于第一种情况,因为您要从
x中减去'0'的 ascii 代码。它不适用于较大的数字,因为您不能从字符串中减去 ascii 代码。 -
@Calips:不一定是 ascii,任何支持的编码都可以。
-
您注意到
13是两个字符吗?一个char包含一个字符;一个字符不能是两个字符。