首页 > 其他 > 详细

检查括号是否匹配

时间:2020-02-28 15:40:27      阅读:102      评论:0      收藏:0      [点我收藏+]
 1 #include <stdio.h>
 2 #include <stdlib.h>
 3 #include "../Stack/stack.h"
 4 
 5 const char closMiss[] = "Close paren missing at line";
 6 const char openMiss[] = "Open paren missing at line";
 7 
 8 int main()
 9 {
10     STACK* stack;
11     char token;
12     char* dataPtr;
13     char fileID[25];
14     FILE* fpIn;
15     int lineCount = 1;
16 
17     stack = createStack();
18     printf("Enter file ID for file to be parsed:");
19     scanf("%s", fileID);
20 
21     fpIn = fopen(fileID, "r");
22     if(!fpIn){
23         printf("Error opening %s\n", fileID);
24         exit(100);
25     }
26     while ((token = fgetc(fpIn)) != EOF){
27         if(token == \n)
28             lineCount++;
29         if(token == (){
30             dataPtr = (char*)malloc(sizeof(char));
31             pushStack(stack, dataPtr);
32         }
33         else{
34             if(token == )){
35                 if(emptyStack(stack)){
36                     printf("%s %d\n", openMiss, lineCount);
37                     return 1;
38                 }
39                 else{
40                     dataPtr = (char*) popStack(stack);
41                     free(dataPtr);
42                 }
43             }
44         }
45     }
46     if(!emptyStack(stack)){
47         printf("%s %d\n", closMiss, lineCount);
48         return 1;
49     }
50     destroyStack(stack);
51 
52     printf("Parsing is OK: %d Line parsed.\n", lineCount);
53 
54     return 0;
55 }

 

检查括号是否匹配

原文:https://www.cnblogs.com/zhangleshan/p/12377141.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!