首页 > 其他 > 详细

c判断括弧是否匹配

时间:2014-04-14 08:20:03      阅读:485      评论:0      收藏:0      [点我收藏+]

这里我没有用堆栈。直接用一个数组input[SIZE]接收用户的输入,在遍历数组,对数组进行操作。已经匹配好的括弧直接用#号覆盖,最后遍历数组。如果数组只有#号,没有其他元素,则匹配。否则不匹配。

bubuko.com,布布扣
 1 /*
 2  *判断括弧是否匹配
 3  */
 4 
 5 #include <stdio.h>
 6 #include <stdlib.h>
 7 #include <string.h>
 8 
 9 #define SIZE 10000
10 #define FALSE 0
11 #define TRUE 1
12 
13 int main()
14 {
15     char input[SIZE];                                                                                        //存放输入
16     
17     int point_first = 0;                                                                                    //遍历每一次的输入的指针
18     int point_last = 0;
19     int flag = TRUE;                                                                                        //flag = TRUE括号匹配 flag = FALSE括号不匹配
20     int num = 0;                                                                                            //一共要处理多少次输入                
21     int length = 0;
22     int i = 0;
23 
24 
25     scanf("%d", &num);
26 
27     while(num > 0)                                                                                            //处理每一次输入
28     {
29         i = 0;
30         flag = TRUE;
31         scanf("%s", input);
32         length = strlen(input);
33         for(point_first = 0; point_first < length; point_first ++)
34         {
35             if(input[point_first] == ) || input[point_first] == ])                                        //如果遇到)或者]向前找匹配的括弧,将其变成#
36             {
37                 point_last = point_first - 1;
38                 
39                 for(; point_last >= 0 && input[point_last] == #; point_last --);                            //向前遍历 
40                 
41                 if(point_last >= 0)            
42                     if((input[point_first] == ) && input[point_last] == () || (input[point_first] == ] && input[point_last] == [))
43                     {
44                         input[point_last] = #;
45                         input[point_first] = #;
46                     }
47                     else
48                         break;
49                 else
50                     break;
51             }
52         }
53         while(i < length)
54         {
55             if(input[i] != #)
56                 flag = FALSE;
57             i++;
58         }
59         if(flag == FALSE)
60             printf("%s\n", "No");
61         else
62             printf("%s\n", "Yes");
63 
64         num --;
65     }
66 
67 }
bubuko.com,布布扣

 

c判断括弧是否匹配,布布扣,bubuko.com

c判断括弧是否匹配

原文:http://www.cnblogs.com/luckygxf/p/3663106.html

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