linux下如何屏蔽代码,新浪博客中自动屏蔽C语言代码的解决方法

本文探讨了在新浪博客中C语言代码的显示问题,由于平台限制,尖括号(<>)会被屏蔽。作者提出了一种通过读取文件并使用字符串替换的方法,将尖括号替换为双引号,确保头文件包含语句可以正常显示。同时,针对可能出现的错误替换情况,提出了特定的判断和处理算法,确保只替换在.h文件名中的尖括号。最终,程序将修改后的代码保存到新的文件中。
摘要由CSDN通过智能技术生成

因为我的新浪博客不支持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[i]);//用于输出001.txt的文件便于观察变化

for(i=0;i'两个字符的时候中间一定会有"***.h"

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

{

if(s[i]=='

{

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

{

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

break;

}

for(pos=j;pos>=i;pos--)//从碰到'>’往回数如果出现第一个'

{

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[i]=='/'&&s[i+1]=='*')//如果出现了//则改为//

s[i+1]='/';

}

for(i=0;i

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

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

for(i=0;i

{

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

}

printf("\n\n");

fclose(fp);

system("pause");

return 0;

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值