你可以用堆棧來處理。
1、首先堆棧為空。
不斷fgetc():
2、如果遇到“{”就入堆棧(Push),并記錄這個“{”的位置(第幾行第幾列),如果遇到“}”就從堆棧里面出一個(Pop)。
3、如果堆棧已空但還遇到“}”,證明當(dāng)前的“}”多余,報錯;
4、如果已經(jīng)到達文件末尾,堆棧非空,證明“{”多余,把堆棧中“{”的位置逐個Pop出來,報錯。
分別對“{”“}”計數(shù)。
不匹配只有兩種情況:
(一)在計數(shù)過程中,“{”的計數(shù)值少于“}”的計數(shù)值。
(二)計數(shù)結(jié)束時,“{”的計數(shù)值不等于“}”的計數(shù)值。