1
入力を文字列として取り、C++で各文字をchar、intまたはfloatとして識別する方法は?入力を文字列として取り込み、各文字をchar、intまたはfloatとして識別する方法は?
例:ユーザに単純な3+2 = statement
を入力させたい場合は、減算を追加するか、他の算術演算を行うかをプログラムが決定し、それに応じて適切な答えを出力します。
入力を文字列として取り、C++で各文字をchar、intまたはfloatとして識別する方法は?入力を文字列として取り込み、各文字をchar、intまたはfloatとして識別する方法は?
例:ユーザに単純な3+2 = statement
を入力させたい場合は、減算を追加するか、他の算術演算を行うかをプログラムが決定し、それに応じて適切な答えを出力します。
std::string.substr(...)
またはstd::regex
で入力文字列をトークン化できます。 トークン化したら、構文が正しいことを確認する必要があります。 その後、構文を実行してください。
ここでは、あなたの言語を定義することができます方法は次のとおりです。
文字列内の各文字をループし、操作の場所(この場合は+)を特定できます。操作位置を知ったら、文字列の先頭から各文字を第1オペランドとして、操作の各文字を第2オペランドとして文字列の最後まで取ります。 'atof'を使って文字列をdouble型に変換し、次にオペランドで算術演算を行うことができます。操作文字を識別し、適切な操作を行うには、 'if'文を使用します。 – Swemoph
それはすべてトークン化についてです。 Googleは大きな助けになるだろう –
これを行うには、以下の例を参考にしてください:https://github.com/djowel/spirit_x3/blob/master/example/x3/calc5.cpp – Roby