一个关于C语言中反斜杠转义符的问题

square_of_cloud 2019-03-16 11:59:46
在看C programming language 的时候的一个小练习,要把输入的反斜杠替换为\\输出。 我的代码如下:if(c=='\\) printf(“\\\\”); 但是运行的时候输入一个反斜杠,会输出\\\\,之后按回车键,每按一次都会出现新的一行\\,为什么会这样呢
...全文
310 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
square_of_cloud 2019-03-18
  • 打赏
  • 举报
回复
明白了,谢谢大家
square_of_cloud 2019-03-17
  • 打赏
  • 举报
回复
全部代码如下
#include<stdio.h>
int main(){
int c;
while((c=getchar())!=EOF)
{
if(c=='\\');
printf("\\\\");
else putchar(c);
}
return 0;
}
拥抱Linux 2019-03-17
  • 打赏
  • 举报
回复

你的代码里,if的括号后面多了一个分号,后面的else就确少了与之匹配的if。
修正之后,代码如下:

#include <stdio.h>
int main()
{
int c;
while ((c = getchar()) != EOF)
{
if (c == '\\')
printf("\\\\");
else
putchar(c);
}
return 0;
}


首先,你最开始说的,输出四个斜杠\的说法,很有问题,因为「printf("\\\\");」只会输出两个斜杠\\来,没有四个斜杠\\\\。

其次,直接按回车键,屏幕上什么都没有输出。

相关截图如下:
(1)
printf("\\\\");


(2)去掉if()后面多余的1个分号后的代码运行效果:

你按正确的代码,再试试吧。
lin5161678 2019-03-17
  • 打赏
  • 举报
回复
全部代码怎么写的
你的问题不只是你单独列出来的这两行代码
另外 代码用[ c o d e = c ] 和 [ / c o d e ] 去掉空格括起来
sswang1314 2019-03-17
  • 打赏
  • 举报
回复
If后面空语句了
lin5161678 2019-03-17
  • 打赏
  • 举报
回复
你这段代码编译不了
else没有匹配到if
直接语法错误
你不要重新输入 直接复制

33,311

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 新手乐园
社区管理员
  • 新手乐园社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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