The C Programming Language 练习题1-24
2017-09-23 17:43
246 查看
题目
编写一个程序,查找C语言程序中的基本语法错误,如圆括号、方括号、花括号不配对等。要正确处理引号(包括单引号和双引号)、转义字符序列与注释。
题目分析
1.情况较多,需要判断三种括号是否在单引号、双引号、转义字符序列和注释中。
2.将代码中三种括号存入三个字符数组中。
编程思路
1.先不考虑特殊情况
2.将代码先读入字符数组中,然后挨个判断是哪种括号。
3.思考了好几天,尝试了好几种方案,要做到严谨代码量太大,只能做简单判断了。
代码实现
编写一个程序,查找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); }
相关文章推荐
- The C Programming Language 练习题4-6
- <<The C Programming Language>>学习之路-练习题参考答案 1-12
- The C Programming Language 练习题2-9
- The C Programming Language 练习题3-4
- <<The C Programming Language>>学习之路-练习题参考答案 1-11
- The C Programming Language 练习题2-10
- The C Programming Language 练习题3-2
- The C Programming Language 练习题1-23
- The C Programming Language 练习题2-2
- <<The C Programming Language>>学习之路-练习题参考答案 1-5
- <<The C Programming Language>>学习之路-练习题参考答案 1-8
- The C Programming Language 练习题1-21
- <<The C Programming Language>>学习之路-练习题参考答案 1-9
- The C Programming Language 练习题2-7
- The C Programming Language 练习题2-3
- The C Programming Language 练习题2-5
- The C Programming Language 练习题2-6
- The C Programming Language 练习题3-3
- The C Programming Language 练习题4-2
- <<The C Programming Language>>学习之路-练习题参考答案 1-6