c语言:编写一个程序,它从标准输入(终端)读取C源代码,并验证所有的花括号都正确的成对出现。
2016-05-29 13:37
579 查看
编写一个程序,它从标准输入(终端)读取C源代码,并验证所有的花括号都正确的成对出现。
例如:
输入:{}{},成功匹配。
输入:{}{{}},成功匹配
输入:{}}{,匹配不成功
输入:}}{{,匹配不成功
输入:{}},匹配不成功
输入:}{}{{,匹配不成功
解:程序:
#include <stdio.h>
#include <stdlib.h>
int main()
{
int count = 0;
char ch;
printf("请输入一组花括号:");
while ((ch = getchar()) != EOF)//用Ctrl+Z结束
{
if (ch == '{')
{
count++;
}
else if (ch == '}')
{
if (count == 0)
{
printf("匹配不成功\n");
}
else
{
count--;
}
}
}
if (count == 0)
{
printf("匹配成功\n");
}
else
{
printf("匹配不成功\n");
}
printf("多余的'{'为%d个\n", count);
system("pause");
return 0;
}
结果1:
请输入一组花括号:{{{}{{}
^Z
匹配不成功
多余的'{'为3个
请按任意键继续. . .
结果2:
请输入一组花括号:{{{}}}
^Z
匹配成功
多余的'{'为0个
请按任意键继续. . .
本文出自 “岩枭” 博客,请务必保留此出处http://yaoyaolx.blog.51cto.com/10732111/1722380
例如:
输入:{}{},成功匹配。
输入:{}{{}},成功匹配
输入:{}}{,匹配不成功
输入:}}{{,匹配不成功
输入:{}},匹配不成功
输入:}{}{{,匹配不成功
解:程序:
#include <stdio.h>
#include <stdlib.h>
int main()
{
int count = 0;
char ch;
printf("请输入一组花括号:");
while ((ch = getchar()) != EOF)//用Ctrl+Z结束
{
if (ch == '{')
{
count++;
}
else if (ch == '}')
{
if (count == 0)
{
printf("匹配不成功\n");
}
else
{
count--;
}
}
}
if (count == 0)
{
printf("匹配成功\n");
}
else
{
printf("匹配不成功\n");
}
printf("多余的'{'为%d个\n", count);
system("pause");
return 0;
}
结果1:
请输入一组花括号:{{{}{{}
^Z
匹配不成功
多余的'{'为3个
请按任意键继续. . .
结果2:
请输入一组花括号:{{{}}}
^Z
匹配成功
多余的'{'为0个
请按任意键继续. . .
本文出自 “岩枭” 博客,请务必保留此出处http://yaoyaolx.blog.51cto.com/10732111/1722380
相关文章推荐
- c语言:用户输入10个整数,程序找出其中的最大值和最小值
- c语言:有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?打印出来?
- c语言:实现一个函数,判断一个数是不是素数。
- c语言:实现一个函数判断year是不是润年。
- c语言:实现一个函数,打印乘法口诀表,口诀表的行数和列数自己指定
- c语言:算数转换举例
- c语言:1000瓶水,有一瓶是有毒的,现共有10只老鼠,怎么判断毒水?
- c语言:在屏幕上打印杨辉三角。
- c语言:日本某地发生了一件谋杀案,写一个程序来确定到底谁是凶手。
- c语言:2种方法:5位运动员参加跳水比赛,每位选手都说对一半,请确定比赛名次
- c语言:strcpy、strncpy、 Strcat、 Strcmp 、strchr、 strstr、 Strlen等函数功能
- c语言:根据华氏温度求摄氏温度,并分析错误
- c语言:计算存款利息
- c语言:求多项式1-1/2+1/3-1/4+...+1/99-1/100的值,3种循环实现
- c语言:编写一个程序,输入a,b,c三个值,输出其中最大者
- c语言:输出一个静态局部变量只在函数内部有效的例子
- c语言:判断一个字符串中是否含有字符C
- c语言:将数组A中的内容和数组B中的内容进行交换。(数组一样大)
- c语言:获取一个数二进制序列中所有的偶数位和奇数位,分别输出二进制序列。
- c语言:两种方法实现给定一个大写字母,用小写字母输出