1つの // すべての右括弧は、比類のない、最近発生した左括弧にマッチします!!! 2の#include <入出力ストリーム> 。3の#include <スタック> 4。の#include < 文字列・H> 5。 使用した 名前空間STDを、 図6 のconst int型のmaxLength = 100 ; // 最大文字列長 。7 ボイド PrintMatchedPairs(CHAR * 式){ 8。 スタック< INT > S; 9 int型の長さ= STRLEN(式); 10 INT J、 11 のために(INT= I 0、Iは長さ<; Iは++ ){ 12は、 IF(式が[I] == ' (')s.push(I); // スタックに位置 13であり、 他の IF(式が[I] == ' )') { // 右ブラケット 14 IF {(s.empty()!)// スタックが空ではない 15 (J = s.top); // 左ブラケット位置合わせ記録 16 COUT << " 左括弧すなわち" << + J 。1 << " 右括弧付き文字すなわち" <<私は+ 。1 << "成功をマッチング文字" << てendl; 17 s.pop(); // 成功した試合、スタック 18がある } 。19 他の COUT << " いいえ右括弧すなわち"私は+ << 1。 << " 左括弧文字マッチング」 << ENDL; 20である } 21である } 22は 、一方(!{s.empty()) 23である J = s.top(); 24 s.pop(); 25 COUT << " いいえすなわち左ブラケット" << J + 1 < < "シンボルは、右括弧にマッチします」<< てendl; 26 } 27 } 28 INT メイン(){ 29 CHAR [ 10 ]。 30 のためには、(int型 = Iを0 ; iは< 10 ; iは++)CINを>> [I]。 31 PrintMatchedPairs(A)。 32 リターン 0 。 33 }