打印

新浪博客中自动屏蔽C语言代码的解决方法

[复制链接]
292|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
因为我的新浪博客不支持C语言中的一些语法,会将<>中间的内容屏蔽,并且把中的内容屏蔽,所以我想用文件中替换的方式把一个编辑好了的.c或者.txt中的 < >  替换为“”

#include"stdio.h"

#include"stdlib.h"

#include"string.h"

#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("G:\\001.txt","r"))==NULL)//设定文件位于当前目录下,可更改为绝对路径*/

    {  printf("Open file  error! ");

       system("pause");

       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("%c",s);//用于输出001.txt的文件便于观察变化



for(i=0;i<'和第一次出现'>'两个字符的时候中间一定会有"***.h"

//那么我们通过分析而得到了一种算法,以免错误的将大于号小于号改为" 也就是说需要修改的<>中间必然含有.h

{

if(s=='<')

{



for(j=i;;j++) //无条件循环,如果碰到‘>’则退出,记录此时的j

{

if(s[j]=='>')

break;

}

for(pos=j;pos>=i;pos--)//从碰到'>’往回数如果出现第一个'<'(因为会出现类似<<<<<"stdio.h"这样的情况)

{

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]='"';

s[j]='"';

}





}







  if(s=='/'&&s[i+1]=='*')//如果出现了//则改为//

s[i+1]='/';



}



for(i=0;i

printf("%c",s);//用于输出001.txt的文件便于观察变化









fp=fopen("G:\\002.txt","w");



for(i=0;i

{

  fputc(s,fp); // 同时结果写入到当前目录下的新文件002.txt中*/

}

printf("\n\n");

fclose(fp);

system("pause");

return 0;

}

使用特权

评论回复

相关帖子

发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

384

主题

384

帖子

0

粉丝