このブログは、目標は、括弧で四則演算を完了することで、私自身の使用のC ++実装のために電卓を記録するために使用され、工場出荷時のデザインパターンと後の段階で最適化されています。
パート1:計算1 + 1 = 2
このような計算式を達成するために、あなただけの最初の「1 + 2」の文字列全体を読み取るために、文字列の分割、最初に試したにstringstreamを使用して、2つの一時変数はint型とCHAR作成する必要があり、 >>使用に読み込まれますが、無視された文字の真ん中に読んで見つかりました
ストリング S = " 12 + 34 " 。 // にstringstreamのSS(秒)。 // int型N1、N2、C。 // SS >> N1 >> C >> N2; // cは34で、 '+'は無視されます
私は2つのパラメータSUBSTR、SUBSTR分割に切り替えるために、文字列の先頭位置を分離し、他の文字列の長さであり、2番目のパラメータはデフォルト値のNPO、ストリングの、すなわち端部です。
int型私= 0 ; 一方、(isdigit(S [I])) { ++ I。// POS } // INT N = atof( "22.0")。 // coutの<< N; // フロートD = atof(s.substr(0、I).c_str())。 COUT << CAL(atof(s.substr(0、I).c_str())、atof(s.substr(I + 1).c_str())、S [I])<< ENDL。
// constのchar型*に文字列
//使用c_str()函数
1 + 1 = 2のうち、このような簡単な実行!しかし、この手順は、トラブルの多くを変更するには、1 + 1 + 1 = 3、存在していない優先順位の操作に適応我々は新しい機能を実行するために戻ってきて次の部分を待つ方法はありません。