[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖
本帖最后由 wujunkai 于 2020-3-28 17:56 编辑

回复 1# Gin_Q
  1. #include<cstdio>
  2. #define MAX 1024
  3. char Char_now=' ';
  4. char Str_replace_from[MAX]="no";
  5. char Str_replace_as  [MAX]="88";
  6. char Str_already_mark[MAX]="";
  7. FILE *fin =NULL;
  8. FILE *fout=NULL;
  9. int Num_mark_distence=0;
  10. int main()
  11. {
  12. fin =fopen("text.txt"  ,"r");
  13. fout=fopen("result.txt","w");
  14. // 比较字符串
  15. while(fscanf(fin,"%c",&Char_now)!=EOF){
  16. // 写入字串
  17. Str_already_mark[Num_mark_distence  ]=Char_now;
  18. Str_already_mark[Num_mark_distence+1]=0;
  19. if( Str_replace_from[Num_mark_distence] == Str_already_mark[Num_mark_distence] ){
  20. // 若对比到当前位仍相同
  21. if( Str_replace_from[Num_mark_distence+1] == 0 ){
  22. // 若整个字串对比完
  23. fprintf(fout,"%s",Str_replace_as );
  24. Num_mark_distence=0;
  25. }
  26. else
  27. Num_mark_distence++;
  28. }
  29. else{
  30. // 若当前位不相同
  31. fprintf(fout,"%s",Str_already_mark);
  32. Num_mark_distence=0;
  33. }
  34. }
  35. fclose(fin );
  36. fclose(fout);
  37. }
复制代码
杠精路过

刚刚又想了一下,空间占用可以更小。。。。。。。为此多了一行代码
  1. #include<cstdio>
  2. #define MAX 1024
  3. char Char_now=' ';
  4. char Char_end=' ';
  5. char Str_replace_from[MAX]="as";
  6. char Str_replace_as  [MAX]="AS";
  7. FILE *fin =NULL;
  8. FILE *fout=NULL;
  9. int  Num_mark_distence=0;
  10. int main()
  11. {
  12. fin =fopen("text.txt"  ,"r");
  13. fout=fopen("result.txt","w");
  14. // 比较字符串
  15. while(fscanf(fin,"%c",&Char_now)!=EOF){
  16. // 读入字符
  17. if( Str_replace_from[Num_mark_distence] == Char_now ){
  18. // 若对比到当前位仍相同
  19. if( Str_replace_from[Num_mark_distence+1] == 0 ){
  20. // 若整个字串对比完
  21. fprintf(stdout,"%s",Str_replace_as );
  22. Num_mark_distence=0;
  23. }
  24. else
  25. Num_mark_distence++;
  26. }
  27. else{
  28. // 若当前位不相同
  29. Char_end=Str_replace_from[Num_mark_distence];
  30. Str_replace_from[Num_mark_distence]=0;
  31. fprintf(stdout,"%s%c",Str_replace_from,Char_now);
  32. Str_replace_from[Num_mark_distence]=Char_end;
  33. Num_mark_distence=0;
  34. }
  35. }
  36. fclose(fin );
  37. fclose(fout);
  38. }
复制代码

TOP

返回列表