标题:将一个文件里的大写字母转化成小写的,小写的变成大写的。为什么写不了呢?
只看楼主
yangcaifei
Rank: 4
来 自:陕西
等 级:业余侠客
威 望:2
帖 子:127
专家分:216
注 册:2014-11-3
结帖率:84%
已结贴  问题点数:20 回复次数:1 
将一个文件里的大写字母转化成小写的,小写的变成大写的。为什么写不了呢?
#include <stdio.h>
#include <stdlib.h>

int main()
{
    FILE *fp;
    char ch;
    fp=fopen("D:\\filename.txt","r+");
    if(fp==NULL)
    {
        printf("Can't open the file!\n");
        exit(0);
    }
    while((ch=fgetc(fp))!=EOF)
    {
        if(ch>='a'&&ch<='z')
        {
            ch=ch-('a'-'A');
        }
        else if(ch>='A'&&ch<='Z')
        {
            ch=ch+('a'-'A');
        }
        fputc(ch,fp);
    }
    fclose(fp);

    return 0;
}
搜索更多相关主题的帖子: include 字母 file 
2015-01-06 19:53
longwu9t
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:小飞侠
威 望:6
帖 子:732
专家分:2468
注 册:2014-10-9
得分:20 
程序代码:
#include <stdio.h>

int main(void) {
    FILE *fp, *fpTmp;
    char ch, tname[80];
    fp = fopen("filename.txt", "r");
    tmpnam(tname);
    fpTmp = fopen(tname, "w");

    if(fp == NULL) {
        printf("Can't open the file!\n");
        return 1;
    }

    while((ch = fgetc(fp)) != EOF) {

        if(ch >= 'a' && ch <= 'z') {
            ch -= 32;

        } else if(ch >= 'A' && ch <= 'Z') {
            ch += 32;
        }

        fputc(ch, fpTmp);
    }

    fclose(fp);
    remove("filename.txt");
    fclose(fpTmp);
    rename(tname, "filename.txt");
    return 0;
}

Only the Code Tells the Truth             K.I.S.S
2015-01-06 20:37



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




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

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