首页 新闻 论坛 群组 Blog 文档 下载 读书 Tag 网摘 搜索 .NET Java 游戏 视频 人才 外包 培训 数据库 书店 程序员
中国软件网
欢迎您:游客 | 登录 注册 帮助
  • 在TXT文本文件中,两个文本内容转换问题 [已结贴,结贴人:zenhan]
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-13 15:06:51 楼主
    问题一:在文本(txt)中有大量的如以下格式文本
    A      B@C
    (以上空白处为Tab符)
    我想把这些文本都变为
    C # B % A

    问题二:在文本(txt)中有大量的如以下格式文本
    M X
    Y
    我想把这些文本都变为
    "X" & Y
    (就是M去掉了,用“”包围X,再把回车变为了&)

    怎么用c语言实现呢?
    100  修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • akirya
    • 等级:
    发表于:2008-05-13 15:23:561楼 得分:1
    呃,建议用PCRE
    直接正则替换
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-13 15:43:562楼 得分:0
    该回复于2008-05-13 18:01:31被管理员删除
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • bubu8633
    • 等级:
    发表于:2008-05-13 16:10:363楼 得分:1
    http://www.chinaunix.net/jh/23/303346.html
    参考下
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • Mnky
    • 等级:
    发表于:2008-05-13 17:19:504楼 得分:97
    func1和func2就对应你两个问题,试试吧:
    C/C++ code
    #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); }
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-13 19:54:095楼 得分:1
    关注.
    修改 删除 举报 引用 回复

    网站简介广告服务网站地图帮助联系方式诚聘英才English 问题报告
    北京创新乐知广告有限公司 版权所有 京 ICP 证 070598 号
    世纪乐知(北京)网络技术有限公司 提供技术支持
    Copyright © 2000-2008, CSDN.NET, All Rights Reserved