编写一个字符串表达式求解函数int expression(char* s); 输入一个字符串表达式,返回它的结果。表达式长度不会超过100。表达式最少有一项,且以等号=结束。表达式中只包含加法和减法,且运算均在整数范围之内。
编写main函数测试该函数的正确性。
输入:
2+2345+913-3=
输出:
3257
逐字读入,判断符号。
#include <stdio.h>
int expression(char *s){
int a=0,b=0,t=0;
char x='+';
do{
if(x=='+'){
b=0;
x=s[t++];
do{
b*=10;
b+=x-'0';
x=s[t++];
}while(x>='0'&&x<='9');
a+=b;
}
else if(x=='-'){
b=0;
x=s[t++];
do{
b*=10;
b+=x-'0';
x=s[t++];
}while(x>='0'&&x<='9');
a-=b;
}
}while(x!='=');
return a;
}
int main(void){
char s[101];
scanf("%s",s);
printf("%d",expression(s));
return 0;
}