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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了用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就很好写

参考技术A 不行吧,字符没法和变量名对照判断。 参考技术B 变量只要和字符类型一样 可以用库函数进行比较啊

以上是关于用C语言怎么样把用户输入的字符串转化成在源程序中可执行的表达式?的主要内容,如果未能解决你的问题,请参考以下文章

C语言 把char 型 或者 整数转化成二进制 要怎么转

用c语言编一个程序:根据用户输入的数字(1~7),输出英文的星期名称。怎么做

在C语言中怎么把一个整数转化为字符串

字符串转化为整数

在c语言中怎么输入一组数字存储在数组里

怎么样把hex转化成C语言形式?