输入一个文件,按a->z,b->y,c->x转换保存到新文件并输出

输入一个文件,按a->z,b->y,c->x转换保存到新文件并输出

样例输入:

abcde

样例输出:

zyxwv

C语言实现:

#include 
#include 

int main() {
    int ch, t;
    char str[100]; //保存输入的字符串
    FILE *fp1, *fp2;
    if((fp1 = fopen("D:\\file2009_1.text", "w+")) == NULL) { //打开文件1
        printf("open file error\n");
        exit(0);
    }
    gets(str); //从stdin获取字符串
    fputs(str, fp1); //输入到文件1
    fclose(fp1); //关闭文件1
    if((fp1 = fopen("D:\\file2009_1.text", "r")) == NULL) { //重新打开文件1
        printf("open file error\n");
        exit(0);
    }
    if((fp2 = fopen("D:\\file2009_2.text", "w+")) == NULL) { //打开文件2
        printf("open file error\n");
        exit(0);
    }
    while(!feof(fp1)) { //遍历读取文件1
        ch = fgetc(fp1); //获取一个字符
        if(ch == 109) { //ASCII码109对应的字符是 m,转换成 110对应的 n
            t = 110;
            fputc(t, fp2); //输入到文件2
        } else if(ch >= 97 && ch < 109) { // ASCII码109以下的小写字母按照离中间的 m的距离计算出转换公式
            t = 109 + (109 - ch) + 1;
            fputc(t, fp2); //输入到文件2
        } else if(ch > 109 && ch <= 122) {  //同理
            t = 109 - (ch - 109) + 1;
            fputc(t, fp2);
        }
    }
    fclose(fp2); //关闭文件2
    if((fp2 = fopen("D:\\file2009_2.text", "r")) == NULL) { //重新打开文件2
        printf("open file error\n");
        exit(0);
    }
    while(!feof(fp2)) { //遍历输出文件2
        t = fgetc(fp2);
        printf("%c", t);
    }
    fclose(fp1); //关闭文件1
    fclose(fp2); //关闭文件2
    printf("\n");
    return 0;
}

你可能感兴趣的:(输入一个文件,按a->z,b->y,c->x转换保存到新文件并输出)