首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

格式检查有什么好办法?比如{} ()的配对,该如何处理

2012-03-29 
格式检查有什么好办法?比如{} ()的配对我现在用的方法很笨。。。希望高人指点下~[解决办法]为什么要检查呢?要

格式检查有什么好办法?比如{} ()的配对
我现在用的方法很笨。。。
希望高人指点下~

[解决办法]
为什么要检查呢?要养成好的编程习惯,写{}()总是先写出完整的一对,然后向里面填东西。
[解决办法]
这有个笨方法,从左到右,遇到 ({ 加1, 遇到 }) 减1,最后为0就对了
[解决办法]
遇到{ 压栈
遇到 } 弹出

最后栈为空则表示匹配成功

() 类似
[解决办法]
栈 栈 栈

还有,栈不是C语言里的,栈是一种数据结构
[解决办法]
是用代码来模拟栈结构, 不只指硬件上的栈啊,没什么操作命令
看一下数据结构关于栈的知识吧, C++实现栈比较简单, C没面向对象我没试过
[解决办法]
酱紫 ...

int foobar( const char* s )
{
char stk[1024];
int nstk = 0;

for( ; *s ; ++ s )
{
switch( *s )
{
case '( ': stk[nstk++] = ') ';break;
case '[ ':stk[nstk++] = '] ';break;
case '{ ':stk[nstk++] = '} ';break;
case ') ': case '] ': case '} ':
if( 0 == nstk || stk[ --nstk ] != *s )
return 0;
break;
}
}

return nstk == 0;
}
[解决办法]
....用正则表达式吧,boost库里有一个
[解决办法]
括号的匹配不能用正则文法描述 ...
[解决办法]
又不是 const char* const s , 当然可以 ++ ..

热点排行