原题链接:去掉双斜杠注释
/*
** 本题中的双斜杠注释有两种情况
** 1.自成一段:这是要全部删去的,且不能留下一个空行
** 2.接在一行代码后:则需删去“//”后的所有字符及其自身
** 第一种情况,使用了continue:若读到本行起始即为“//”,
** 则不做任何操作,跳过
** 第二种情况,先是识别出“//”,然后将第一个“/”替换成“\0”
** 使输出提前终止
*/
#include<stdio.h>
#include<string.h>
int main(){
char str[200];
while(gets(str)){
int len = strlen(str);
if(str[0] == '/' && str[1] == '/'){
continue;
}
for(int i = 1; i < len - 1; i++){
if(str[i] == '/' && str[i + 1] == '/'){
str[i] = '\0';
}
}
puts(str);
}
return 0;
}0.0分
3 人评分
C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:
一点编程也不会写的:零基础C语言学练课程
解决困扰你多年的C语言疑难杂症特性的C语言进阶课程
从零到写出一个爬虫的Python编程课程
只会语法写不出代码?手把手带你写100个编程真题的编程百练课程
信息学奥赛或C++选手的 必学C++课程
蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程
你好,我想请问一下: 12行:for(int i = 1; i < len - 1; i++){}中的len如果直接用strlen(str)代替就会运行错误 这是为什么呢