求帮忙做一道C语言程序

实验内容:文件读写综合设计
编写一个程序,要求在一个文本文件中写入2行字符串,然后将字符串中的大写英文字符转换成小写字符,小写英文字符转换成大写字符,其他字符不变。提示:需要定义两个文件指针,分别用于读操作和写操作。

注:本次实验需要在blackboard提交电子版实验报告

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

#define FILE_PATH_LEN 100
#define STR_LEN 1000

int main() {

FILE *fpread, *fpwrite;
char *buffer, *str1, *str2, *str, *cur_str;

buffer = malloc(FILE_PATH_LEN * sizeof(char));
str = malloc(2 * STR_LEN * sizeof(char));
str1 = malloc(STR_LEN * sizeof(char));
str2 = malloc(STR_LEN * sizeof(char));

printf("请输入文本文件的目录:\n");
gets(buffer);

fpwrite = fopen(buffer, "w");

if (fpwrite == NULL) {
perror("Error opening file.\n");
exit(1);
}

printf("请输入第一条字符串:\n");
gets(str1);
fprintf(fpwrite, "%s\n", str1);

printf("请输入第二条字符串:\n");
gets(str2);
fprintf(fpwrite, "%s\n", str2);

free(str1);
free(str2);
fclose(fpwrite);

printf("写入字符串成功。\n");

fpread = fopen(buffer, "r");

if (fpread == NULL) {
perror("Error opening file.\n");
exit(1);
}

char ch;
cur_str = str;

while (!feof(fpread)) {
ch = fgetc(fpread);

if (ch >= 65 && ch <= 90) {
ch += 32;
} else if (ch >= 97 && ch <= 122) {
ch -= 32;
}

sprintf(cur_str, "%c", ch);
cur_str += sizeof(char);
}

fclose(fpread);

fpwrite = fopen(buffer, "w");
fprintf(fpwrite, "%s", str);

free(str);
fclose(fpwrite);

printf("大小写转换成功。\n");

return 0;

}


运行结果如下:



生成的 D:\output.txt 文件如下:


温馨提示:答案为网友推荐,仅供参考
第1个回答  2015-06-25
一个分也没有啊追问

有了

有了

相似回答