首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> 關於C語言

C語言實現花括號匹配驗證:堆疊思想的簡化應用

     編輯:關於C語言

C語言實現花括號匹配驗證:堆疊思想的簡化應用

題目:從標準輸入讀取 C 源碼片段,驗證所有花括號 {} 是否正確成對、巢狀匹配。

核心邏輯

利用計數器 count 模擬堆疊:

  • 遇到 { → count++(入棧)。
  • 遇到 } → 若 count==0 說明無對應左括號,直接判定失敗;否則 count--(出棧)。
  • 輸入結束(EOF)後,若 count==0 則匹配成功,否則有多餘左括號。

完整代碼

#include <stdio.h>
#include <stdlib.h>

int main() {
    int count = 0;
    char ch;
    printf("請輸入一組花括號(Ctrl+Z 結束):\n");
    while ((ch = getchar()) != EOF) {
        if (ch == '{') count++;
        else if (ch == '}') {
            if (count == 0) {
                printf("匹配不成功\n");
                return 0;
            }
            count--;
        }
    }
    if (count == 0) printf("匹配成功\n");
    else printf("匹配不成功,多餘 '{' %d 個\n", count);
    system("pause");
    return 0;
}

測試案例

輸入結果
{}{}匹配成功
{}{{}}匹配成功
{}}{匹配不成功
}}{{匹配不成功
{}}匹配不成功
}{}{{匹配不成功

擴展:支援多種括號

若需同時驗證 ()、[]、{},需使用真正的堆疊結構(陣列或鏈表),將左括號入棧,遇右括號時彈出比對類型是否一致。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved