该功能只实现了大括号的数量匹配,没有进行大括号的左右匹配。具体实现如下:
#define MAXBUF 4096
int
main(int argc, char *argv[])
{
char szBuf[MAXBUF + 1];
int nCount=0;
int n = 0;
char *p;
//printf("1--nCount=[%d]\n", nCount);
while((n = read(STDIN_FILENO, szBuf, MAXBUF)) > 0)
{
p = szBuf;
while (*p != 0)
{
if (*p == '{')
{
nCount++;
//printf("---1---nCount=[%d]\n", nCount);
p++;
continue;
}
if (*p == '}')
{
nCount--;
//printf("###2###nCount=[%d]\n", nCount);
p++;
continue;
}
p++;
}
memset((char *)szBuf, 0, sizeof(szBuf));
}
if (nCount != 0)
printf("The brackets havn`t match. nCount=[%d]\n", nCount);
else
printf("The brackets have matched\n");
return 0;
}