Cで文字列から式を取得して評価する方法
char *str = "2*8-5+6";
これにより、評価後に結果が17になるはずです。
自分で試してみてください。スタック データ構造を使用して、この文字列を評価できます。ここでは、文字列計算用のスタック データ構造を実装するための参照です (C++ の場合) 。
自分でやらなければなりません.Cはこれを行う方法を提供していません. C は非常に低レベルな言語です。それを行う最も簡単な方法は、それを行うライブラリを見つけるか、それが存在しない場合は lex + yacc を使用して独自のインタープリターを作成することです。
簡単なグーグルは次のことを示唆しています:
TinyExprを試してみてください。これは、プロジェクトに追加できる単一の C ソース コード ファイル (依存関係なし) です。
それを使用して問題を解決するのは、次のとおりです。
#include <stdio.h>
#include "tinyexpr.h"
int main()
{
double result = te_interp("2*8-5+6", 0);
printf("Result: %f\n", result);
return 0;
}
それは印刷されます:Result: 17