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