ASCII码中,数字字符 '0'
到 '9'
是连续排列的。'0'
的ASCII码值是48,'1'
的值是49,依此类推,直到 '9'
的值是57。因此,通过从字符的ASCII码值中减去 '0'
的ASCII码值(即48),你可以得到该字符所代表的数字的整数值。
例如:
- 如果
str1
是'5'
,那么str1 - '0'
的结果是 5(因为'5'
的ASCII码值是53,53 - 48 = 5)。 - 如果
str1
是'0'
,那么str1 - '0'
的结果是 0(因为'0'
的ASCII码值是48,48 - 48 = 0)。
这种技巧在解析由数字字符组成的字符串时特别有用,例如当你需要从字符串中读取一个整数时。通过遍历字符串中的每个字符,并对每个字符应用 char - '0'
的转换,你可以得到一个整数数组,然后进一步处理这些整数。
需要注意的是,这种方法仅适用于数字字符 '0'
到 '9'
。如果 str1
包含其他字符,那么结果将是一个无意义的整数值。因此,在使用这种方法之前,通常需要先检查字符是否确实是数字字符。