了解如何将char[0]转换为int

Understanding how to convert char[0] to int

本文关键字:转换 int char 了解      更新时间:2023-10-16

我试图进入一个循环,每次将字符串中的字符转换为它的整数值,我不是指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获取实际数值