📅  最后修改于: 2023-12-03 15:35:09.802000             🧑  作者: Mango
在 C++ 中,我们可以通过 str[i] - '0'
来将一个字符转换为对应的数字。这在处理字符串中的数字时非常有用。
假设我们有一个字符串 str
,其中包含一些数字字符,我们可以按照以下方式将它们转换为数字:
#include <iostream>
#include <string>
using namespace std;
int main()
{
string str = "12345";
int num = 0;
for (int i = 0; i < str.length(); i++)
{
num = num * 10 + str[i] - '0';
}
cout << num << endl; // 输出 12345
return 0;
}
上述示例中,我们使用了一个 for
循环,每次将字符串中的一个字符转换为数字,并加到 num
中,最终得到了正确的结果。这个方法适用于任何整数,不论它们的位数有多少。
为什么 str[i] - '0'
可以将一个数字字符转换为数字呢?
这是因为字符在计算机中是以 ASCII 码的形式存储的。例如,字符 '0'
的 ASCII 码为 48,而字符 '1'
的 ASCII 码为 49,以此类推。
因此,我们可以通过将字符的 ASCII 码减去字符 '0'
的 ASCII 码来得到对应的数字。例如:
'1' - '0' = 49 - 48 = 1
'2' - '0' = 50 - 48 = 2
'3' - '0' = 51 - 48 = 3
...
'9' - '0' = 57 - 48 = 9
虽然 str[i] - '0'
可以很方便地将一个字符转换为数字,但是我们需要注意以下几点:
'0'
到 '9'
之间,否则结果也是不可预测的。str[i] - '0'
可以很方便地将一个数字字符转换为数字。但是我们需要注意转换时可能出现的错误,以保证程序的正确性。