从键盘输入一个长度不超过100个字符的字符串,然后做如下操作: (1)将字串中的小写字母转为大写,大写字母转为小写,而其它字符不作处理。(2)将字串输出保存到一个名为“ex801.txt”的文本文件中。注:文本文件ex801.txt应与源码文件ex801.c保存在同一个文件夹中。目前,已编写完成main函数,请用C++编程实现writeToFile函数,具体功能和要求如下所示。/* @Filename: ex801.c @Author: 鞠成东 @Version: 1.0 @Date: 2021-03-18 @Description: 文件字符读写 / #include <stdio.h> #include <stdlib.h> #include <string.h> int main(int argc,char argv[]){ /(1)声明函数及变量/ int writeToFile(char str, char fileName, char mode); char str[100]; char fileName[] = “ex801.txt”; /(2)获取键盘输入字串/ fgets(str, 100, stdin);得到(str);将回车看作字串输入结束标志,字串中可以有空格 //scanf(“%s”, str);将空格看作字串输入结束标志,字串中不能有空格 /(3)将字串写入文件*/ int charNum = writeToFile(str, fileName, “w”);if(charNum < 0){ //printf(“write error”);//用于调试 return -1; } return 0;} /* * 函数名称:writeToFile * 函数功能:将字串写入文件 * 形式参数:char *str,一维字符数组(字符串)首地址 * 形式参数:char *fileName,待写入的文件路径及名称 * 形式参数:char *mode,文件使用方式 * 返 回 值:int型,若文件打开异常,返回 -1;否则返回写入到文件的字符数 */ int writeToFile(char *str, char *fileName, char *mode){ // 请编程实现本函数 } 其他说明:无 【源文件名】ex801.c 【输入形式】标准输入:从键盘任意输入不超过100个字符的字串 【输出形式】文件输出:将字串转换后输出到文件
时间: 2023-11-22 09:55:22 浏览: 70
以下是writeToFile函数的实现:
```
int writeToFile(char *str, char *fileName, char *mode) {
FILE *fp;
int charNum = 0;
fp = fopen(fileName, mode); // 打开文件
if (fp == NULL) { // 文件打开异常
return -1;
}
for (int i = 0; i < strlen(str); i++) {
if (str[i] >= 'a' && str[i] <= 'z') { // 小写字母转为大写
char c = str[i] - 'a' + 'A';
fputc(c, fp);
charNum++;
} else if (str[i] >= 'A' && str[i] <= 'Z') { // 大写字母转为小写
char c = str[i] - 'A' + 'a';
fputc(c, fp);
charNum++;
} else { // 其他字符不作处理
fputc(str[i], fp);
charNum++;
}
}
fclose(fp); // 关闭文件
return charNum;
}
```
该函数首先打开文件,然后遍历输入的字符串,对于每个字符进行大小写转换或直接输出到文件中。最后关闭文件并返回写入到文件的字符数。在main函数中调用该函数将输入的字符串写入到ex801.txt文件中即可。
阅读全文