4

Cで文字列から式を取得して評価する方法

char *str = "2*8-5+6";

これにより、評価後に結果が17になるはずです。

4

4 に答える 4

3

自分で試してみてください。スタック データ構造を使用して、この文字列を評価できます。ここでは、文字列計算用のスタック データ構造を実装するための参照です (C++ の場合) 。

于 2013-01-23T04:59:25.650 に答える
2

自分でやらなければなりません.Cはこれを行う方法を提供していません. C は非常に低レベルな言語です。それを行う最も簡単な方法は、それを行うライブラリを見つけるか、それが存在しない場合は lex + yacc を使用して独自のインタープリターを作成することです。

簡単なグーグルは次のことを示唆しています:

于 2013-01-23T04:59:27.883 に答える
1

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

于 2016-04-18T02:41:05.490 に答える