📅  最后修改于: 2023-12-03 15:19:54.364000             🧑  作者: Mango
在C++中,我们经常会使用char类型的字符数组来存储字符串。但是在处理字符串的过程中,有时候我们需要将字符转换成对应的数字。这时候,我们就可以使用这个表达式:s[i]-'0'
。
s[i]
表示字符数组s中的第i个字符,'0'
表示十进制数字0,两者相减的结果就是s[i]所表示的数字。
例如,字符'5'的ASCII码是53,而字符'0'的ASCII码是48,所以'5'-'0'
的结果就是5。
下面是一个简单的示例,用于将字符串转换成对应的数字。
#include <iostream>
using namespace std;
int main() {
char s[] = "12345";
int len = strlen(s);
int num = 0;
for (int i = 0; i < len; i++) {
num = num * 10 + (s[i] - '0');
}
cout << num << endl;
return 0;
}
这段代码将字符串"12345"转换成了对应的数字12345,并输出该数字。在循环中,我们使用了s[i]-'0'
这个表达式,将字符转换成对应的数字。同时,我们还使用了一个变量num来存储转换后的数字。
当字符数组中的字符不是数字字符时,使用这个表达式会产生错误。因此,在使用前,我们需要确保字符数组中的每一个字符都是数字字符。通常,我们可以使用函数isdigit()来判断一个字符是否是数字字符。