标题:求大佬帮忙编写这个程序
只看楼主
li1993
Rank: 1
等 级:新手上路
帖 子:3
专家分:4
注 册:2018-6-23
结帖率:0
已结贴  问题点数:10 回复次数:2 
求大佬帮忙编写这个程序
要求
读取任意文本文件,将文件内容中的asd单词(不区分大小写)全部替换为大写的ASD,并另存为新的文件。
新文件名在原文件名的基础上增加"ASD_"前缀,文件类型保持不变。
文件内容举例:
abc asd abc  替换为  abc ASD abc
abc aSd.  替换为  abc ASD.
abc asdd 不替换
文件名举例:
若原文件名 readme.txt  ,则处理后保存的文件为 ASD_readme.txt

新手编了好久不太会运用指针,求大佬帮忙。
搜索更多相关主题的帖子: 编写 文件 替换 文件名 abc 
2018-06-23 10:42
li1993
Rank: 1
等 级:新手上路
帖 子:3
专家分:4
注 册:2018-6-23
得分:0 
求助求助求助
2018-06-23 11:06
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:432
帖 子:10064
专家分:41463
注 册:2014-5-20
得分:10 
文件较小的话可以一次读入内存,按字符串处理。
#include <stdio.h>
#include <ctype.h>
#include <string.h>

char *upper(char *str)
{
    char *p=str;
    for (; *p; ++p)
        *p = toupper(*p);
    return str;
}

main()
{
    FILE *fp = fopen("test.txt", "w");
    fprintf(fp, "%s\n", "abc asd abc");
    fprintf(fp, "%s\n", "abc aSd");
    fprintf(fp, "%s\n", "abc asdd");
    fclose(fp);

    char s[256];
    fp = fopen("test.txt", "r+");
    while (fscanf(fp, "%s", s)==1)
    {
        if (strcmp("ASD",upper(s))==0)
        {
            fseek(fp, -3, SEEK_CUR);
            fwrite(s, 3, 1, fp);
            fseek(fp, 1, SEEK_CUR);
        }
    }
    fclose(fp);

    fp = fopen("test.txt", "r");
    while (fgets(s, 256, fp))
        printf("%s", s);
    fclose(fp);
}
2018-06-23 16:16



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-488094-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.156349 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved