私は、ユーザー入力(2 + 2、3 * 1、4-2,2 + 3 * 1など)から数式を取るプログラムで作業しようとしています。 、1つの操作ですが、まだ複数の場合は機能しません。私は文字列をトークン化して評価することを提案されました。私はそれをトークン化することができましたが、私が読んでいるマニュアルは評価する方法を説明していません(私は自分自身で学習しようとしています。超助けになった。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);
}
}
これはこれまでのコードの内容です。助けが大いに評価される、ありがとう。
再帰的降下パーサーを調べる。 –