织梦CMS - 轻松建站从此开始!

罗索

C语言文件处理:字符串替换(非正则表达式)

jackyhwei 发布于 2010-07-17 21:08 点击:次 
用C直接打开指定文件,并将该文件的指定字串替换成新的字串。
TAG:

用C直接打开指定文件,并将该文件的指定字串替换成新的字串

  1. //JiangChen 04-08-27 Ver 1.0 
  2. int cfilereplace(char * filename, char * oldstring, char * newstring) 
  3. int len=4096; 
  4. char buff[5000];//文件缓冲区 
  5. FILE *fd; 
  6. int i,j,k,flag=0,over=0; 
  7. int max,readed; 
  8. int count=0;//搜寻到的数目 
  9. int oldlen=strlen(oldstring); 
  10. int newlen=strlen(newstring); 
  11. int lenstr=(newlen-oldlen); 
  12.  
  13. //buff[0]=0x0; 
  14. //buff[1]=0x0; 
  15. //打开文件: 
  16. if((fd = fopen(&filename[0] , "r"))==NULL) 
  17. printf("Error : Can not open file %s\n",&filename[0]); 
  18. return 0; 
  19. //读取文件内容 
  20. while(over != 1) 
  21. readed = fread(&buff[0] , 1 , len , fd); 
  22. if(readed < len) 
  23. over=1; 
  24. max=readed; 
  25. else 
  26. max=len; 
  27.  
  28. for(i=0;i<max+(count*lenstr);i++) 
  29. for(j=0;j<oldlen;j++) 
  30. if(*(oldstring+j) != *(buff+i+j)) 
  31. flag=0; 
  32. break
  33. else 
  34. flag=1; 
  35. if(flag==1) 
  36. count++; 
  37.  
  38. if(lenstr>0) 
  39. for(k=max+(count*lenstr);k>i;k--) 
  40. *(buff+k+lenstr)=*(buff+k); 
  41. else if(lenstr<0) 
  42. for(k=i;k<max+(count*lenstr);k++) 
  43. *(buff+k+oldlen+lenstr)=*(buff+k+oldlen); 
  44.  
  45. //buff[max+(count*lenstr)]='{row.content}'; 
  46.  
  47. for(k=0;k<newlen;k++) 
  48. *(buff+i+k)=*(newstring+k); 
  49.  
  50. i+=(newlen); 
  51. else 
  52. if(j==0) 
  53. i+=(j); 
  54. else 
  55. i+=(j-1); 
  56. //buff[0]=buff[max]; 
  57. //buff[1]=buff[max+1]; 
  58. //buff[max]=EOF; 
  59. fclose(fd); 
  60. fd = fopen(&filename[0] , "w"); 
  61. fwrite(buff,sizeof(char),max+(count*lenstr),fd); 
  62. fclose(fd); 
  63. return 1; 

 

(JiangChen )
本站文章除注明转载外,均为本站原创或编译欢迎任何形式的转载,但请务必注明出处,尊重他人劳动,同学习共成长。转载请注明:文章转载自:罗索实验室 [http://www.rosoo.net/a/201007/9836.html]
本文出处:网络博客 作者:JiangChen
顶一下
(1)
50%
踩一下
(1)
50%
------分隔线----------------------------
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名: 验证码:点击我更换图片
栏目列表
将本文分享到微信
织梦二维码生成器
推荐内容