了解如何将char[0]转换为int
Understanding how to convert char[0] to int
我试图进入一个循环,每次将字符串中的字符转换为它的整数值,我不是指ASCII值。尝试使用atoi()没有运气,但后来我偶然发现了这个问题将单个字符转换为int和我的代码工作。代码如下:
std::string tmp = "87532621";
for(i=0;i<tmp.length();i++)
{
**int num = tmp[i] - '0';**
//do some processing
}
我不明白为什么下面这行代码可以工作。我的问题是如何将字符值转换为整数类型?
int num = tmp[i] - '0';
字符串中的每个字符都是ascii值。ascii值只是7位数字。字符数字的数值位于0123456789序列中,这非常方便,因为它可以写入
int zero = '0' - '0'; // 0 (zilch)
int one = '1' - '0'; // one (1)
int nine = '9' - '0'; // 9 (three times three)
等等
实际的数值并不重要。在字符集中彼此相邻的事实是。
参见wikipedia - ascii获取实际数值
相关文章:
- 从"int*"强制转换为"unsigned int"会丢失精度错误
- 是否可以从int转换为enum类类型
- 如何在C++中将一个无符号的 int 转换为两个无符号的短裤?
- 功能样式转换从 'int' 到 'ItemType' 的匹配转换
- 将 int 数组转换为 std::vector<int*>
- 如何转换 int 变量并附加到常量 wchar_t*
- 类型转换<int>的舍入问题
- 在Objective-C中调用sqlite3数据库时,如何调用和转换int/NSNumber
- 转换 int -> 无符号长 长 是否由标准定义
- 简单的 int 到字符串转换..int to const char* 无效
- 如何将转换 int 除法键入为浮点数
- C++类型转换 int * 到类
- 预期的类型说明符,并且无法在初始化时转换“int*”
- 转换int并将其与char*连接
- 字符串流在转换int型时添加新行
- 转换int为字符串/char c++ /Arduino
- c# P-Invoke:如何转换INT fun(BYTE *bStream, UINT16 *nCount, const
- 类型转换(int**)和int(*)的区别
- 从"int"到"nodeType"的无效转换<int>
- 从无符号int构造对强制转换int的引用