有个问题想请高手指点

pang123hui 2010-02-06 10:40:01
今天看《C程序设计语言》有道练习题:

编写一个将输入复制到输出的程序,并将其中的制表符替换为\t,退格符替换为\b,反斜杠替换为\\

其它的都好办,但是那个“反斜杠替换为\\”

我一开始想是用一个if判断

比如:

if(ch == '\')
printf("\\");


但是这个显然不对,想想就是想不好怎么实现,在此求助
...全文
144 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
yzx714 2010-02-07
  • 打赏
  • 举报
回复
就按一楼那样写,有错吗?
pang123hui 2010-02-06
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 gingzai777 的回复:]
引用 2 楼 stardust20 的回复:
感觉if(ch == '\')
  printf("\\");
就可以啊。。


感觉上,哈哈。

printf("\\");

\\这个参数被转义成\,\\\\被转义成\\,前一个\是转义后面字符的意思。
[/Quote]

哦,对,编译没成功,这点也没注意到,现在的问题是if判断怎么写呢
pang123hui 2010-02-06
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 yzx714 的回复:]
if(ch == '\\')  printf("\\\\");
[/Quote]

如果我题意没理解错的话,这个好像应该不符合题意吧,比如我输入abc\c,此时应该输出abc\\c啊
Zijian_Zhang 2010-02-06
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 stardust20 的回复:]
感觉if(ch == '\')
  printf("\\");
就可以啊。。
[/Quote]

感觉上,哈哈。

printf("\\");

\\这个参数被转义成\,\\\\被转义成\\,前一个\是转义后面字符的意思。
pang123hui 2010-02-06
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 stardust20 的回复:]
感觉if(ch == '\')
  printf("\\");
就可以啊。。
[/Quote]

我一开始也觉得可以,可真的不行,后来想想‘\’这个\系统理解为转义字符,此时系统等待你输入到底是什么转义字符,而如果什么都不输入的话是不可以的
stardust20 2010-02-06
  • 打赏
  • 举报
回复
感觉if(ch == '\')
printf("\\");
就可以啊。。
yzx714 2010-02-06
  • 打赏
  • 举报
回复
if(ch == '\\') printf("\\\\");

69,382

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧