在TXT文本文件中,两个文本内容转换问题
问题一:在文本(txt)中有大量的如以下格式文本
A B@C
(以上空白处为Tab符)
我想把这些文本都变为
C # B % A
问题二:在文本(txt)中有大量的如以下格式文本
M X
Y
我想把这些文本都变为
"X" & Y
(就是M去掉了,用“”包围X,再把回车变为了&)
怎么用c语言实现呢?
[解决办法]
呃,建议用PCRE
直接正则替换
[解决办法]
http://www.chinaunix.net/jh/23/303346.html
参考下
[解决办法]
func1和func2就对应你两个问题,试试吧:
#include "stdio.h"void func1(FILE *fin, FILE *fout){ char a[100],b[100],c[100]; while(fscanf(fin,"%[^\t]\t%[^@]@%s\n",a,b,c)>=0) { fprintf(fout,"%s # %s %% %s\n",c,b,a); }}void func2(FILE *fin, FILE *fout){ char a[100],b[100],c[100]; while(fscanf(fin,"%[^ ] %s\n%s\n",a,b,c)>=0) { fprintf(fout,"\"%s\" & %s\n",b,c); }}void main(){ FILE *fin; FILE *fout; fin = fopen("in1.txt","r"); fout = fopen("out1.txt","w"); if(!fin || !fout) return; func1(fin,fout); fclose(fin); fclose(fout); fin = fopen("in2.txt","r"); fout = fopen("out2.txt","w"); if(!fin || !fout) return; func2(fin,fout); fclose(fin); fclose(fout);}
[解决办法]
关注.