关闭

括号配对测试程序1.1版

674人阅读 评论(0) 收藏 举报
 

# include <stdio.h>
# include <malloc.h>
# define Max 100
/***************************************
*文件名  : parentheses11.c              *
*说明    :用来测试括号配对程序的      *
*版本    :v1.1                        *
*作者    :flyli                       *
*日期    :2006.5.22                   *
*修改    :flyli                       *
*修改日期:2006.5.22                   * 
*说明    :相对于前一版本增加了对括号中*
*          含有其它字符的兼容性        *
*          输入((a)(b))就会判断“正确”*
*          输入 ()(就会判断“错误”    *
***************************************/             
void Jadge(char* );

int main(void)
{
    char String[Max] = {0};
    scanf("%s",String);      //输入
    Jadge(String);            //判断
    system("pause");
    return 0;
}
/*****************************************
* 函数说明: 用来判断括号是否配对的函数  *
*            括号间可以包括字符和数字等  *
* 函数输入: 要判断的字符串的首地址      *
*****************************************/ 
void Jadge(char* PIn )
{
    char* PHead,* PPoint;
    char i;
    PHead = PPoint = (char*)malloc(Max*sizeof(char)); 
    *PPoint = 'X';
    PPoint ++;
    PHead ++;
    for(i = 1 ;i < Max+1 ;i++)
    {
        *PPoint = *PIn;
        if(*PPoint == ')')                               //遇到')'开始回查
        {
            *PPoint = 0;
            PPoint--;
            while(*PPoint != '(')                       //将'('以外的符号全部忽略
            {
                PPoint--;                               
                if(*PPoint == 'X'  )   //当回到了头也没找到配对的(遇到)'X' 或又发现一个'('
                {
                    puts("Error");
                    PHead--;
                    free(PHead);                 //把内存释放
                    return ;
                }    
            }
            if(*PPoint == '(')
            {
                PPoint--;          
            }       
        }
        PPoint++;
        PIn++;
    }
    if(* PHead == 0)               //防止 '('多于')'的现象
        puts("Right");
    else
        puts("Error");
    PHead--;                             //把内存释放
    free(PHead);
}

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:9142次
    • 积分:157
    • 等级:
    • 排名:千里之外
    • 原创:5篇
    • 转载:3篇
    • 译文:0篇
    • 评论:1条
    文章分类
    文章存档
    最新评论