一个关于使用c语言进行对文档读取替换特定字符串

        本来前面我讲过了使用shell脚本进行的字符串替换,由于这种方法太不安全,没办法只好使用最古老的办法c语言来实现了, 说实话c语言真是个好东西,只有没有想到的没有c语言不能解决,至少从我工作中我是这样认为的,可能您是不这么认同的,我也知道世界上没有什么是最完美的,要不然就不会有其他语言的产生了。在其职而谋其事,我只是谈谈我对c的感觉。

       工作了大半年,c语言我也学习了很长时间,可是对于c中的指针算法还有字符串的输出,内存的操作总是把握不好真是郁闷死了,可能自己的脑袋就是缺少一根玄吧,但是对于c语言的热爱还是瞒有热情,我比较钟爱于它,它给人的想法总是那么奇妙,给人脑子一玩转的空间,我对脑筋急转弯可是很菜的,同伴经常考问,我总是想不到等到说出答案感觉豁然开朗,我总是怀疑是不是自己的智商就是这点,这么点智商我来学习c语言是不是有些找死,呵呵现在看来无所谓了,不管是沿用别人的代码还是自己想出来实现的代码,在我看来把问题解决了就是通过,一眼可以学习。是不是有点不管白猫黑猫抓着老鼠就是好猫的感觉,您别笑话我。

       这段代码是一个独立函数代码,我没有加以函数封装,说实话有时感觉c++真是好东西,如果每个人能够用c++很好的整理出自己做过的一些项目中内容,做好通用封装性,以后别人拿来直接用真是方便无比,要比使用c这样笨重的函数我感觉好多了,省太多的事情,c++我没有深入的学习,人家说如果学计算机不好好深入学习c++就等于瞎子在c中打滚,也不知道是真是假也许是自己可能还没有经历,只是简单的感概,看来后期的学习中我还是应该要去好好的看看c++,以前上学的时候感觉太好了,c++课基本上每堂课都在睡觉,老师讲的越是有意思我睡的越是香,现在想想大好时光就这么被自己浪费掉了,回过头来还要自己去学习,真是不值。

     好了又扯了这么多,不好意思了,没办法博客是自己吐露工作感概的地方,如果您不像听那也没有办法,使用共享代码您总是要有点回报嘛,这里也不是什么金钱回报就是听我发发感概,发发牢骚就好。呵呵 ,请您千万别见怪唷

马上开始代码:

FILE *xmlFile;
     char buf[256];
     int j;
        int count;
        memset(buf,'/0',sizeof(buf));
     char *tempstr="<friendlyName>",*pstr;
        if((xmlFile = fopen("/web/tvdevicedesc.xml","r"))!=NULL)
        {
                for(j=0 ;fgets( buf, sizeof(buf) ,xmlFile );j++)
           {
                        sprintf(obj[j].buff,"%s/0",buf);
           }

                fclose(xmlFile);
        }
    if((xmlFile = fopen("/web/tvdevicedesc.xml","w"))!=NULL)
        {
                for(count=0;count<j;count++)
  {
   pstr = strstr(obj[count].buff,tempstr);
   if(pstr==NULL)
   {
    fprintf(xmlFile,"%s",obj[count].buff);
   }
   else
   {
    if(friname==NULL || (strlen(friname)==0))
    {
     fprintf(xmlFile,"%s",obj[count].buff);
    }
    else{
     fprintf(xmlFile,"<friendlyName>%s</friendlyName>/n",friname);
    }
   }
   
   }

                fclose(xmlFile);
        }

这里的xmlFile 是xml文档,而,"<friendlyName>这个是xml的一个节点,主要是对节点的name进行替换。其中的定义typedef struct
{
      char buff[512];
} file;
file obj[512]; 这是一个结构体,其实就是一个二维的数组。由于整个代码中需要所以就这样定义了,如果想要单独的其中的friname就是要替换的字符串。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值