|
10鱼币
#include <stdio.h>
char input[66], symbol;
int result, num1, num2, i;
int main() {
printf("Enter an expression [e.g. 13 + 25] ");
gets(input);
i = 0;
num1 = 0;
while (input[i] != ' ') {
printf("%d\n",input[i]);
num1 = num1 * 10 + input[i]-48;
i++;
}
i++;
symbol = input[i];
i++;
i++;
num2 = 0;
while (input[i] != '\0') {
num2 = num2 * 10 + input[i] - 48;
i++;
}
if (symbol == '+') {
result = num1 + num2;
}
if (symbol == '-') {
result = num1 - num2;
}
printf("%d %c %d = %d\n", num1, symbol, num2, result);
}
|
最佳答案
查看完整内容
'0' 的ascii码值是0x30 ,十六进制的30H转换成十进制就是48
例如,字符'3'的ASCII码值为0x33,想转变成数字3,就可以了利用'3' - '0' = 3
减法就是为了将字符类型的数字,转换为整数类型的值。
|