用C语言怎么样把用户输入的字符串转化成在源程序中可执行的表达式?
比如我从键盘中输入x*x,电脑把这个字符串赋给源程序里面的一个函数,然后执行这个函数表达式?...
比如我从键盘中输入x*x, 电脑把这个字符串赋给源程序里面的一个函数,然后执行这个函数表达式?
展开
展开全部
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int test(const char *str)
{
int length, i = 0, j = 0;
char *pl, *pr, *tmp, sign = 0;
tmp = str;
length = strlen(str);
for(i = 0; i < length; i++){
char c = *(str+i);
if(c == '+'|| c == '-' || c == '*' || c == '/' || c == '%'){
sign = c;
break;
}
}
*(tmp + i) = '\0';
pl = tmp;
pr = tmp+i+1;
i = atoi(pl);
j = atoi(pr);
if(sign == '+')
return i+j;
else if(sign == '-')
return i-j;
else if(sign == '*')
return i*j;
else if(sign == '/')
return i/j;
else
return i%j;
}
int main(void)
{
char str[10] = {0};
scanf("%s", &str);
printf("%d\n",test(str));
return 0;
}
简单写了点,很多容错没做,空格,字母什么的都没有判断,不过简单思路就这样,用解释型语言写简单点,python就很好写
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询