如何从键盘输入一个字符串,将其中的大写字母全部转化成小写字母,然后输出到一个磁盘文本文件”test”中保存,输入的字符串以?

从键盘输入一个字符串,将其中的大写字母全部转化成小写字母,然后输出到一个磁盘文本文件”test”中保存,输入的字符串以”!”结束。。C语言

#include <stdio.h>
#include <ctype.h>

int main()
{
    char str[100];
    FILE *fp;

    // 从键盘读取输入字符串
    printf("请输入一个字符串:");
    fgets(str, 100, stdin);

    // 将大写字母转换为小写字母
    for (int i = 0; str[i] != '\0'; i++)
    {
        str[i] = tolower(str[i]);
    }

    // 将结果写入磁盘文件中
    fp = fopen("test.txt", "w");
    fprintf(fp, "%s", str);
    fclose(fp);

    printf("已将结果写入磁盘文件中。\n");

    return 0;
}

可以循环从输入读取字符,直到遇到感叹号则结束输入,获取字符后,如果输入的是大写字母,则换为对应的小写字母,然后再将每一个字符存入字符数组;

循环结束,再将字符数组中的字符逐个写入文件test即可。

代码如下:

参考链接:


#include <stdio.h>


int main(void){
    
    // 存储要写入文件的数据的字符数组 
    char content[1000];
    
    int i=0;  //  字符数组下标变量初始化为0 
    printf("请输入字符串(以!结束):\n");
    char ch=getchar();  // 获取一个字符 
    while(ch!='!'&&i<1000){ // 如果输入的不是'!'感叹号,并且未到字符数组最大长度 
        
        // 如果输入的字符是大写字母,则转为对应的小写字母 
        if(ch>='A'&&ch<='Z'){
            ch='a'+ch-'A';
        }
        // 将输入的字符存入字符数组 
        content[i]=ch;
        ch=getchar();  // 获取下一个字符 
        i++;  // 数组下标变量+1 
    }

    
    FILE * fp = fopen("test","w");
    int j=0;
    // 将字符数组的全部字符写入文件test中 
    while(j<i){
// https://www.runoob.com/cprogramming/c-function-fprintf.html
        fprintf(fp,"%c",content[j]);
        j++;
    }
    fclose(fp);  // 关闭文件 
    
    return 0;
    
} 

img

供参考:

#include <stdio.h>
#include <conio.h>
int main()
{
    FILE *fp;
    char  ch;
    if (fp = fopen("test.txt", "w")){
        while ((ch = getchar()) != '!'){
            if (ch >= 'A' && ch <= 'Z')
                ch += 32;
            putch(ch);
            fputc(ch, fp);
        }
        fclose(fp);
    }
    return 0;
}