0
我试图从一个程序,需要从用户输入(2 + 2,3 * 1,4-2,2 + 3 * 1等)的数学表达式我已经得到它与简单,一个操作,但它不适用于多个。我被建议标记和评估字符串,当我设法标记它时,我正在阅读的手册没有解释如何评估(我试图自己学习,没有为我做功课),谷歌hasn'不是很有帮助。如何评估C中的令牌?
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main() {
char conta[255];
int n1;
int n2;
int result;
char op;
printf("Introduza uma expressao numerica: ");
gets(conta);
sscanf(conta, "%d %c %d", &n1, &op, &n2);
char* token = strtok(conta, "+-*/");
while (token) {
printf("token: %s\n", token);
token = strtok(NULL, "+-*/");
}
if(op == '+'){
printf("%d", result=n1+n2);
}else if(op == '-'){
printf("%d", result=n1-n2);
}else if(op == '*'){
printf("%d", result=n1*n2);
}else if(op == '/'){
printf("%d", result=n1/n2);
}
}
这是我到目前为止的代码。任何帮助都会大大降低,谢谢。
调查递归下降解析器。 –