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

时间:2014-08-19 21:12:50

标签: c++ string char int

我试图进入一个循环,每次将字符串中的字符转换为它的整数值,我不是指ASCII值。试图使用atoi()没有运气,但后来我偶然发现了这个问题Convert single char to int并且我的代码工作正常。代码如下:

std::string tmp = "87532621";
for(i=0;i<tmp.length();i++)
  {
     **int num = tmp[i] - '0';**
     //do some processing
  }

我无法理解为什么以下代码行有效。我的问题是如何将char值转换为整数类型?

int num = tmp[i] - '0';

1 个答案:

答案 0 :(得分:1)

字符串中的每个字符都是ascii值。 ascii值只是7位数。 字符数字的数值位于序列 0123456789 中,这非常方便,因为它可以编写

int zero = '0' - '0'; // 0 (zilch)
int one = '1' - '0'; // one (1)
int nine = '9' - '0'; // 9 (three times three)

等等。

实际数值对于此工作并不重要。字符集中彼此相邻的事实是。

请参阅维基百科 - ascii了解实际数值。