【发布时间】:2016-12-17 13:41:35
【问题描述】:
我正在尝试开发一个从用户输入(2+2、3*1、4-2、2+3*1 等)中获取数学表达式的程序,我已经可以使用它了简单,一个操作,但它还不能与多个一起工作。有人建议我对字符串进行标记和评估,虽然我设法对其进行标记,但我正在阅读的手册并没有解释如何评估(我正在尝试自己学习,我没有功课)并且谷歌没有不是很有帮助。
#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);
}
}
这就是我目前所拥有的代码。任何帮助将不胜感激,谢谢。
【问题讨论】:
-
研究递归下降解析器。
标签: c token c-strings evaluate