提交数 : 7779 | 通过数 : 2619
题目描述给出一个C++源程序代码,请将其中的注释去掉。已知注释全部采用行注释的形式,即用双斜杠开头的字符串,后面的内容全部作为注释内容(包含双斜杠)。输入要求
输入若干行源程序代码(含行注释),以文件控制结束。输出要求
输出去掉注释后的代码,其余内容不变。输入样例
//====================== // simplest program //====================== #include输出样例using namespace std; //---------------------- int main(){ cout<<”hello world!n”; }//---------------------
#include提示using namespace std; int main(){ cout<<”hello world!n”; }
原题目把注释清掉后还要把由此产生的空行删掉,题目复杂些。现在把测试数据改了下,真的是“其余内容不变”。
在每日学习中选择G++语言提交,因为gets函数可能在c中提交不了,这个函数在旧的编译器可以用,新的用不了
#includeint 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#include 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; }



