📌  相关文章
📜  s[i]-'0' 做了什么 (1)

📅  最后修改于: 2023-12-03 15:19:54.364000             🧑  作者: Mango

以's[i]-'0' 做了什么

在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()来判断一个字符是否是数字字符。