The C Programming Language 练习题3-2
2017-10-08 21:17
330 查看
题目
编写一个函数escape(s, t),将字符串t 复制到字符串s 中,并在复制过程中将换行符、制表符等不可见字符分别转换为\n、\t等相应的可见的转义字符序列。要求使用swich语句。再编写一个具有相反功能的函数,在复制过程中将转义字符序列转换为实际字符。
题目分析
写的代码好像无法识别’\t’这个标志,只好用空格来代替。
发现是因为自己太懒。。。。。把那一段输入的字符copy到记事本当中,再次copy出来时,系统就认为’\t’是几个空格了。。。重新修改后更新程序如下:
代码实现
执行结果
编写一个函数escape(s, t),将字符串t 复制到字符串s 中,并在复制过程中将换行符、制表符等不可见字符分别转换为\n、\t等相应的可见的转义字符序列。要求使用swich语句。再编写一个具有相反功能的函数,在复制过程中将转义字符序列转换为实际字符。
题目分析
写的代码好像无法识别’\t’这个标志,只好用空格来代替。
发现是因为自己太懒。。。。。把那一段输入的字符copy到记事本当中,再次copy出来时,系统就认为’\t’是几个空格了。。。重新修改后更新程序如下:
代码实现
#include <stdio.h> int main() { int c, d, i, j; char chartesta[200], chartestb[200], chartestc[200]; i = 0; while ((c = getchar()) != EOF && i < 200) { chartesta[i] = c; i++; } chartesta[i] = '\0'; i = j = 0; while ((c = chartesta[i++]) != '\0' && i < 200) switch(c) { case '\t': { chartestb[j++] ='\\'; chartestb[j++] ='t'; break; } case '\n': { chartestb[j++] ='\\'; chartestb[j++] ='n'; break; } default: { chartestb[j++] = c; break; } } chartestb[j] = '\0'; i = 0; while (chartestb[i] != '\0' && i < 200) { printf("%c", chartestb[i]); i++; } printf("\n"); i = j = 0; while ((c = chartestb[i]) != '\0' && i < 200) { switch(c) { case '\\': { d = chartestb[i + 1]; i++; switch(d) { case 't': chartestc[j++] = '\t'; break; case 'n': chartestc[j++] = '\n'; break; } break; } default: { chartestc[j++] = c; break; } } i++; } chartestc[i] = '\0'; i = 0; while (chartestc[i] != '\0' && i < 200) { printf("%c", chartestc[i]); i++; } }
执行结果
abc def gh ijkl mn opq rst vw xy z ^Z abc\tdef gh\tijkl\tmn\nopq\trst vw\txy \tz\n abc def gh ijkl mn opq rst vw xy z
相关文章推荐
- <<The C Programming Language>>学习之路-练习题参考答案 1-8
- <<The C Programming Language>>学习之路-练习题参考答案 1-9
- The C Programming Language 练习题1-24
- <<The C Programming Language>>学习之路-练习题参考答案 1-6
- <<The C Programming Language>>学习之路-练习题参考答案 1-12
- The C Programming Language 练习题4-6
- <<The C Programming Language>>学习之路-练习题参考答案 1-7
- The C Programming Language 练习题1-21
- The C Programming Language 练习题2-2
- The C Programming Language 练习题2-8
- <<The C Programming Language>>学习之路-练习题参考答案 1-10
- The C Programming Language 练习题1-22
- The C Programming Language 练习题2-6
- The C Programming Language 练习题3-1
- The C Programming Language 练习题2-1
- The C Programming Language 练习题4-5
- <<The C Programming Language>>学习之路-练习题参考答案 1-3
- The C Programming Language 练习题3-3
- The C Programming Language 练习题4-3
- <<The C Programming Language>>学习之路-练习题参考答案 1-11