因为我的新浪博客不支持C语言中的一些语法,会将<>中间的内容屏蔽,并且把中的内容屏蔽,所以我想用文件中替换的方式把一个编辑好了的.c或者.txt中的 < >  替换为“” 
 
#include&quot;stdio.h&quot; 
 
#include&quot;stdlib.h&quot; 
 
#include&quot;string.h&quot; 
 
#define N 100*1024  // 设定文件最大字符个数不超过100k,可更改*/ 
 
 
 
int main() 
 
{ 
 
int i=0,j,k=0,m=0,pos=0,max; 
 
char s[N]; 
 
     
 
FILE *fp; 
 
 
 
 
 
  if((fp=fopen(&quot;G:\\001.txt&quot;,&quot;r&quot;))==NULL)//设定文件位于当前目录下,可更改为绝对路径*/ 
 
    {  printf(&quot;Open file  error! &quot;); 
 
       system(&quot;pause&quot;); 
 
       exit(1); 
 
    } 
 
s[i++]=fgetc(fp); 
 
while(!feof(fp)) 
 
{s[i++]=fgetc(fp); 
 
} 
 
fclose(fp);//程序到此就是说明把文本中的内容放到s[]这个数组当中去了。 
 
max=i-1;// 函数feof()最后会读两次,这个表示文件字节的个数,所以必须减1 */ 
 
for(i=0;i 
 
printf(&quot;%c&quot;,s);//用于输出001.txt的文件便于观察变化 
 
 
 
for(i=0;i<'和第一次出现'>'两个字符的时候中间一定会有&quot;***.h&quot; 
 
//那么我们通过分析而得到了一种算法,以免错误的将大于号小于号改为&quot; 也就是说需要修改的<>中间必然含有.h 
 
{ 
 
 if(s=='<') 
 
 { 
 
 
 
 for(j=i;;j++) //无条件循环,如果碰到‘>’则退出,记录此时的j 
 
 { 
 
 if(s[j]=='>') 
 
 break; 
 
 } 
 
for(pos=j;pos>=i;pos--)//从碰到'>’往回数如果出现第一个'<'(因为会出现类似<<<<<&quot;stdio.h&quot;这样的情况) 
 
{ 
 
if(s[pos]=='<') 
 
break;   
 
} 
 
 
 
 
 
 
 
  for(m=j-3;m<>符号中间靠近j值的前3位含有'.' 则记录此时m的值退出 
 
 { 
 
 if(s[m]=='.') 
 
  
 
 break; 
 
 } 
 
  for(k=j-3;k<>符号中间靠近j值的前3位含有'h' 则记录此时k的值退出 
 
 { 
 
if(s[k]=='h') 
 
 break; 
 
 } 
 
 if(k==(m+1))//判断如果满足'.'是在'h'之前则改变相应的数组中的值 
 
 { 
 
s[pos]='&quot;'; 
 
s[j]='&quot;'; 
 
 } 
 
  
 
 
 
 } 
 
 
 
 
 
 
 
  if(s=='/'&&s[i+1]=='*')//如果出现了//则改为// 
 
 s[i+1]='/'; 
 
 
 
} 
 
 
 
for(i=0;i 
 
printf(&quot;%c&quot;,s);//用于输出001.txt的文件便于观察变化 
 
 
 
 
 
 
 
 
 
fp=fopen(&quot;G:\\002.txt&quot;,&quot;w&quot;); 
 
 
 
for(i=0;i 
 
{ 
 
  fputc(s,fp); // 同时结果写入到当前目录下的新文件002.txt中*/ 
 
} 
 
printf(&quot;\n\n&quot;); 
 
fclose(fp); 
 
system(&quot;pause&quot;); 
 
return 0; 
 
} |   
     
  
 |