做了很久的题。。。。求指点。一个下午哈哈我菜求指点

本题输入一段符合C语言的表达式语句,其中可能会含有C/C++的注释,要求输出不带注释的语句。

输入格式:

输入一段符合C语言的表达式语句。

输出格式:

**### 输出不带任意注释的语句,

特别需要注意的是:

1. /*xxx*/标记的注释需要被替换成1个空格。

2. //标记的注释的内容直接全部删除,包括双斜杠//也被删除,不被任何字符替代

3. 需要考虑转义字符\,双引号",单引号'的问题,如"//aab"就不是注释了。

4. 若vc编译器与gcc编译器对注释删除结果不一致,以gcc和notepad软件删除结果为准。(gcc -E test.c 可以看到删除注释的结果)**

输入样例:

char str[]="//fff/*d*/";

/*str*/z"//abc\\"//abc

/ * * /

"//abc\\"//def"//ghk   //supported by panxiaoting

"//abc\\\"//def"//ghk   //supported by panxiaoting

输出样例:

在这里给出相应的输出。例如:

char str[]="//fff/*d*/";

z"//abc\\"

/ * * /

"//abc\\"

"//abc\\\"//def"




自己写的有问题。。。混乱,强大的IT友人给我点指示吧,膜拜


#include<stdio.h>
void one();
void two();
int main(){
int str1,str2,str3,str4;
while ((str1= getchar()) != EOF)
{
if(str1=='/')
{
if((str2=getchar())=='*')
{
putchar(str1);
putchar(str2);
one();
}
else if(str2=='/')
{
two();
}
else
{
putchar(str1);
putchar(str2);
}
}
else if(str1=='\'' || str1==' " ')
{
putchar(str1);

while((str2=getchar())!=str1)
{
putchar(str2);
if(str2=='\\')
{
putchar(getchar());
}
}
putchar(str2);
}

else
{
putchar(str1);
}
}
return 0;
}


void one()
{
int str_1,str_2;
str_1=getchar();
str_2=getchar();
while(str_1!='*'&&str_2!='/')
{
str_1=str_2;
str_2=getchar();
}
putchar(str_1);
putchar(str_2);
}


void two()
{
int str_1;
str_1=getchar();
while(str_1!='\n'){
str_1=getchar();
}
}

#笔试题目#
全部评论

相关推荐

05-26 10:24
门头沟学院 Java
qq乃乃好喝到咩噗茶:其实是对的,线上面试容易被人当野怪刷了
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务