我是靠谱客的博主 精明绿茶,这篇文章主要介绍1138 清除行注释(宁波大学oj),现在分享给大家,希望可以做个参考。

时间限制 : 2000/1000 MS(Java/Others) | 内存限制 :65536/32768 KB(Java/Others)

提交数 : 7779 | 通过数 : 2619

题目描述

给出一个C++源程序代码,请将其中的注释去掉。已知注释全部采用行注释的形式,即用双斜杠开头的字符串,后面的内容全部作为注释内容(包含双斜杠)。

输入要求

输入若干行源程序代码(含行注释),以文件控制结束。

输出要求

输出去掉注释后的代码,其余内容不变。

输入样例

//======================
// simplest program
//======================
#include<stdio.h>
using namespace std;
//----------------------
int main(){
cout<<”hello world!n”;
}//---------------------

输出样例

#include<stdio.h>
using namespace std;

int main(){
cout<<”hello world!n”;
}

提示

原题目把注释清掉后还要把由此产生的空行删掉,题目复杂些。现在把测试数据改了下,真的是“其余内容不变”。

在每日学习中选择G++语言提交,因为gets函数可能在c中提交不了,这个函数在旧的编译器可以用,新的用不了

#include<stdio.h>
int main()
{
 char a[1006];
 for(int i=0;gets(a);i++)
 {//对输入的每一串字符串进行判断,一个字符串占一行,
 //这里的gets函数输入的字符串结尾隐含着'',回车的意思 
 //这也是外面这个for循环跳出循环语句的出口 
  //每一行的开始由gets输入一串字符
  
  //(非常重要) 即for(a;b;c) ,当b==''的时候,就跳出这个for循环 (非常重要) (非常重要) (非常重要) (非常重要) 
  
  for(int j=0;a[j]!='';j++)//这个for是对每一串输入的字符串一个个字符的遍历 
  {
   if(a[j]=='/'&&a[j+1]=='/')
   {//如果遇见相邻两个字符出现斜杠,就跳出此循环,开始下一行(字符串)判断。 
    break;
   }
   else
   {
    printf("%c",a[j]);//每个字符依次输出 
   }
  }
  printf("n");
 }
 return 0;
}

 

 还有以下这个是借鉴了另外一个同学的代码

可以借鉴学习参考一下

#include<stdio.h>
#include<string.h>
void schzs(char a[]){
 int n,i;
 n=strlen(a);
 for(i=0;a[i];i++){
  if(a[i]=='/'&&a[i+1]=='/'){
   break;
  }else{
   printf("%c",a[i]);
  }
 }printf("n");
}
int main(){
 char a[1000];
 while(gets(a)){
  schzs(a);
 }
 return 0;
}

最后

以上就是精明绿茶最近收集整理的关于1138 清除行注释(宁波大学oj)的全部内容,更多相关1138内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(100)

评论列表共有 0 条评论

立即
投稿
返回
顶部