当前位置:首页 » 编程语言 » 怎么删除c语言源码中的注释
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

怎么删除c语言源码中的注释

发布时间: 2022-06-09 13:30:33

⑴ 如何编一个c语言程序,功能是去掉代码中的双斜杠注释

逻辑应该可以这样,先读某c文件(读文本),然后去掉 包含//的字符串,就OK了

#include<stdio.h>
#include<string.h>

void fun(char *s, char *m, int len)
{

int i=0,j=0,k=0,n=0;

while(s[j])

{

if(s[j]==m[i])

{

n=0;

while(m[i])

{

if(s[j+k]==m[i])

n++;

else break;

k++;

i++;

}

i=0;

k=0;

if(n==len)

strcpy(s+j,s+j+4);

}

j++;

}
}

int main()
{
char s[]="aabcdeabcdfgabcdefgabcd"; char m[]="abcd"; int len = strlen(m); fun(s,m,len); printf("%s\n",s);
}

⑵ c语言 删除程序中的注释

1、少了很多大括号,包括while的,if else的
2、while(feof(fp1)!=EOF) 最好改为while(!feof(fp1))
3、我改后测了一下,这个程序只能删除“/* */”的注释,对“//”的注释无效。再改一下状态机吧。
4、下面的程序我把格式整理了一下,没改什么算法部分。写程序要规范。

#include "stdio.h"

void delcomm(FILE*fp1,FILE*fp2)
{
char c;
int i=0;
while(!feof(fp1))
{
printf("test\n");
if((c=fgetc(fp1))=='\n')
fprintf(fp2,"\n");
else
{
switch(i)
{
case 0:
if (c=='/')
i=1;
else
fprintf(fp2,"%c",c);
break;
case 1:
if (c=='*')
i=2;
else
{
fprintf(fp2,"/%c",c);
i=0;
}
break;
case 2:
if (c=='*')
i=3;
break;
case 3:
i=(c=='/')?0:2;
break;
}
}
}
}

int main()
{
FILE*fp1,*fp2;
if ((fp1=fopen("/home/hxl/test/md5.c","r"))==NULL)
{
printf("wrong!");
exit(0);
}
fp2=fopen("/home/hxl/test/md5out.c","w");
delcomm(fp1,fp2);
fcloseall();
}

如何删除一个C语言程序中的注释

分析字符串,碰到//直接删除整行.
碰到/*删除,然后做个标记,继续查找
*/找到以后删除它们中间的字符串。
具体的代码,你自己看能写出来不

⑷ 用C语言编译程序:删除C++源程序中的多余空行及注释文字

代码如下:#include
<stdio.h>
#include
<stdlib.h>
#include
<string.h>void
main()
{
FILE*
fp
=
fopen("test.cpp",
"r");
if(NULL
==
fp)
{
return;
}
fseek(fp,
0L,
SEEK_SET);
char
char_line[1024]
=
{0}; int
totoalline
=
0;
printf("/****************原始文件*************************/\n");
while(1)
{
fgets(char_line,
1024,
fp);
int
size
=
strlen(char_line);
if(0
>=
size)
{
break;
}
printf("%s",
char_line);
memset(char_line,
0,
1024);
totoalline++;
}
printf("/****************原始文件结束,共%d行*************/\n",
totoalline); fseek(fp,
0L,
SEEK_SET);
totoalline
=
0;
FILE*
fp_to
=
fopen("result.cpp",
"w");
printf("\n\n/****************去除冗余后的文件*****************/\n");
while(1)
{
fgets(char_line,
1024,
fp);
int
size
=
strlen(char_line);
if(0
>=
size)
{
break;
}
int
i;
for(i=0;
i<size-1;
i++)
{
if('/'
==
char_line[i]
&&
'/'
==
char_line[i+1])
{
break;
}
}
if(0
!=
i)
{
bool
flag_tab
=
0;
for(int
j=0;
j<i;
j++)
{
if('\t'
!=
char_line[j]
&&
'
'
!=
char_line[j])
{
flag_tab
=
true;
break;
}
}
if(flag_tab)
{
char*
ret
=
(char*)malloc(sizeof(char)*(i+1));
ret[i]
=
0;
memcpy(ret,
char_line,
i);
printf("%s\n",
ret);
//写入到新文件
fwrite(ret,
sizeof(char),
i,
fp_to);
fwrite("\r\n",
sizeof(char),
2,
fp_to);
free(ret);
totoalline++;
}
}
memset(char_line,
0,
1024);
}
printf("/****************去除冗余后的文件结束,共%d行*****/\n",
totoalline);
printf("详情查看resutl.cpp\n");
fclose(fp);
fclose(fp_to);
}

⑸ 删除c语言的注释包括//,和/* */

谁说的呀,//一般用于短注释
/* */ 用于那些一行放不下的长注释

⑹ 删除C语言程序中所以的注释语句

33行是为了表示 ' 这个符号,如果写成c == '''那么'''这三个引号,遇到第二个引号时结束了。
所以要转义也就是将 ' 写成 \' 以此来表示'号。
62同理
是为了表示\这个符号,用转义符号\来转义,写成\\表示的就是\的意思

⑺ C语言的注释 删除C语言中的注释

少年,作业就自己写,还上网络知道让别人免费给你写作业?给你点提示吧,重点是找出注释,也就是找出字符串数组中注释//或者/*和*/的数组下标,其他就是遍历查找的事情,自己写吧

⑻ 写一个C++程序,使其能够删除源代码文件中的所有注释语句(包括以// 和/* */两种)

#include<iostream>
#include<string>
usingnamespacestd;
/*
string::npos表示没找到
*/
intmain(){
strings="inta=1;//aaa intb=2;//bbb /*thisiscomment.*/intc=a+b;//ccc";//文本代码
while(1){
if(s.find("//")!=string::npos){
size_tpos=s.find("//");
size_tend=s.find(" ",pos);//从pos位置开始寻找
size_tlen=end-pos;
s.erase(pos,len);//删除pos位置开始后长度为len的字符串
}elseif(s.find("/*")!=string::npos){
size_tpos=s.find("/*");
size_tend=s.find("*/",pos);
stringtemp("*/");
size_tlen=end-pos+temp.length();
s.erase(pos,len);
}else
break;
}
cout<<s<<endl;
return0;
}

⑼ 编程实现去掉C语言文件中的注释

给个思路吧:
按行读取文件,在本行寻找字符“//”和“/*”
若找到“//”,则从字符/开始一直到行尾的所有字符全都去掉
若找到“/*”,则从此处开始寻找“*/”,删除字符“/*”和“*/”及二者之间的字符