Aaron学习笔记

少壮不努力,长大没饭吃!
posts - 4, comments - 13, trackbacks - 0, articles - 37

匹配字符串中的花括号

Posted on 2009-04-28 16:36 赞劲小子 阅读(976) 评论(0)  编辑 收藏 引用 所属分类: C和指针
/*
 *判断输入语句花括号的匹配
 *author:wangfeng
*/

#include 
"stdio.h"
void main(){
    
int ch;
    
int pr = 1//花括号配对
    int count = 0;   //左花括号计数
    while((ch = getchar()) != EOF && ch != '\n'){
        
/*
         * 判断}括号在匹配的{提前出现,将标记置为0,直接退出循环
        
*/

        
if (pr == 1 && ch == '}'){
            pr 
= 0;
            
break;
        }

        
/*
         *若在原先的括号匹配的情况下,又出现{,则标志为0,继续循环
        
*/

        
if (pr == 1 && ch == '{' ){
            pr 
= 0;
            count
++;
            
continue;
        }

        
/*
         *若在出现{未匹配完,又出现{,则标记不变,直接将计数器加1
        
*/
 
        
if (pr == 0 && ch == '{'){
            count
++;
            
continue;
        }

        
/*
         *又花括号匹配,匹配一个将count(不匹配的左花括号的数量)减去1,若匹配后count为0,则说明左右括号完全匹配    
        
*/

        
if (pr == 0 && ch == '}'){
            count
--;
            
if(count == 0)
                pr 
= 1;
            
else
                pr 
= 0;
        }

        
    }

    
if(1 == pr)
        printf(
"输入语句的花括号匹配!\n");
    
else if(0 == pr)
        printf(
"输入语句的花括号不匹配!\n");
}

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理