1、数字字符减去'\0';
2、数字字符减去48,因为'\0'的ASCII码为48.
比如:
for (i = 0; str[i] != '\0'; i++) {
if (str[i] >= '0' && str[i] <= '9') {
number = number * 10 + str[i];
}
}
printf("%d", number);
此时没有减去'\0',运行结果如下:
((49*10)+50)+51=5451
减去'\0'后:
number = number * 10 + str[i]-48;
运行结果正常。