用C语言怎么样把用户输入的字符串转化成在源程序中可执行的表达式?

比如我从键盘中输入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就很好写

温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-06-27
不行吧,字符没法和变量名对照判断。
第2个回答  2013-06-29
变量只要和字符类型一样 可以用库函数进行比较啊
相似回答