您的位置:首页 > 其它

The C Programming Language 练习题1-24

2017-09-23 17:43 246 查看
题目

编写一个程序,查找C语言程序中的基本语法错误,如圆括号、方括号、花括号不配对等。要正确处理引号(包括单引号和双引号)、转义字符序列与注释。

题目分析

1.情况较多,需要判断三种括号是否在单引号、双引号、转义字符序列和注释中。

2.将代码中三种括号存入三个字符数组中。

编程思路

1.先不考虑特殊情况

2.将代码先读入字符数组中,然后挨个判断是哪种括号。

3.思考了好几天,尝试了好几种方案,要做到严谨代码量太大,只能做简单判断了。

代码实现

char c, d, brackets[MAXLENGTH], line[MAXLENGTH];
int i;

void checkbracket(char c, char d);

int main()
{
for (i = 0; ( ((c = getchar())!= EOF) && i < MAXLENGTH); i++)
line[i] = c;
checkbracket('{', '}');
checkbracket('[', ']');
checkbracket('(', ')');
return 0;
}

void checkbracket(char c, char d)
{
extern int i;
int h, bracketcount, j;
char e;
h = bracketcount = j = 0;
if ( ((e = line[h]) != EOF ) && (h < i) )
{
if (e == c)
{
brackets[bracketcount] = e;
j++;

}
else if (e == d)
{
brackets[bracketcount] = e;
j--;
}
h++;
}
if (j == 0)
printf("The bracket %c and %c are all right!\n", c, d);
else
printf("The bracket %c and %c are mismatch!\n", c ,d);

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: