从键盘输入一个长度不超过100个字符的字符串,然后做如下操作: (1)将字串中的小写字母转为大写,大写字母转为小写,而其它字符不作处理。 (2)将字串输出保存到一个名为“ex801.txt”的文本文件中。注:文本文件ex801.txt应与源码文件ex801.c保存在同一个文件夹中。 目前,已编写完成main函数,请编程实现writeToFile函数,具体功能和要求如下所示。 /* @Filename: ex801.c @Author: Ju Chengdong @Version: 1.0 @Date: 2021-03-18 @Description: File Character Reading and Writing */ #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); //gets(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 13:55:15 浏览: 20
以下是writeToFile函数的实现:
```
int writeToFile(char *str, char *fileName, char *mode){
FILE *fp;
fp = fopen(fileName, mode);
if(fp == NULL){
return -1; //打开文件异常,返回-1
}
int i;
int charNum = 0; //记录写入文件的字符数
for(i = 0; i < strlen(str); i++){
if(str[i] >= 'a' && str[i] <= 'z'){
str[i] -= 'a' - 'A'; //小写字母转为大写
}
else if(str[i] >= 'A' && str[i] <= 'Z'){
str[i] += 'a' - 'A'; //大写字母转为小写
}
fputc(str[i], fp); //写入文件
charNum++;
}
fclose(fp); //关闭文件
return charNum;
}
```
这个函数首先尝试打开指定的文件,如果文件打开异常,就返回-1。然后对输入的字符串进行遍历,将其中的小写字母转为大写,大写字母转为小写,并写入到文件中。最后关闭文件,并返回写入到文件中的字符数。
相关问题
写入文本文件 从键盘输入一个长度不超过100个字符的字符串,然后做如下操作: (1)将字串中的小写字母转为大写,大写字母转为小写,而其它字符不作处理。 (2)将字串输出保存到一个名为“ex801.txt”的文本文件中。注:文本文件ex801.txt应与源码文件ex801.c保存在同一个文件夹中。
下面是一个 C 语言的代码示例,实现了上述功能:
```c
#include <stdio.h>
#include <ctype.h>
int main() {
char str[101];
printf("请输入字符串:");
fgets(str, 101, stdin);
// 转换大小写
for (int i = 0; str[i] != '\0'; i++) {
if (islower(str[i])) {
str[i] = toupper(str[i]);
} else if (isupper(str[i])) {
str[i] = tolower(str[i]);
}
}
// 输出到文件
FILE *fp = fopen("ex801.txt", "w");
fprintf(fp, "%s", str);
fclose(fp);
printf("已将字符串保存到ex801.txt文件中。\n");
return 0;
}
```
代码中使用了 `fgets()` 函数从键盘读入字符串,将字符串中的小写字母转换为大写字母,大写字母转换为小写字母,最后将处理过的字符串输出到文件中。注意,在输出到文件中时,需要使用 `fprintf()` 函数,而不是 `fputs()` 函数,因为 `fputs()` 函数遇到空字符会停止输出,而 `fprintf()` 函数则不会。
用c语言写一个writeToFile函数程序实现从键盘输入一个长度不超过100个字符的字符串,然后做如下操作: (1)将字串中的小写字母转为大写,大写字母转为小写,而其它字符不作处理。 (2)将字串输出保存到一个名为“ex801.txt”的文本文件中。注:文本文件ex801.txt应与源码文件ex801.c保存在同一个文件夹中。
以下是用C语言实现的writeToFile函数:
```c
#include <stdio.h>
#include <ctype.h>
void writeToFile() {
char str[101];
printf("请输入一个长度不超过100的字符串:");
fgets(str, 101, stdin);
for (int i = 0; str[i] != '\0'; i++) {
if (islower(str[i])) {
str[i] = toupper(str[i]);
} else if (isupper(str[i])) {
str[i] = tolower(str[i]);
}
}
FILE *fp = fopen("ex801.txt", "w");
fprintf(fp, "%s", str);
fclose(fp);
printf("字符串已保存到ex801.txt文件中。\n");
}
```
这个函数首先从键盘读入一个长度不超过100的字符串,然后对字符串中的每个字符进行大小写转换,最后将转换后的字符串输出到名为“ex801.txt”的文本文件中。
在主函数中调用该函数即可完成任务:
```c
int main() {
writeToFile();
return 0;
}
```