C语言经典例98-将字符转为大写字母并写入文件

1 题目

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

2 分析

写入文件请参考上一篇文章 C语言经典例97-输入字符写入文件,对于字符串小写字母转换为大写字母有两种方法:

  1. 根据ASCII码来转换,观察ASCII码中大小字母和小写字母的规律可以发现,将小写字母-32则可以转换为相应的大写字母。
  2. 使用ctype.h中的函数toupper()tolower(),前者是转换为大写字母,后者是转换为小写字母。

本题采用第一种方法:

3 实现

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
 
int main()
{
    FILE*fp = NULL;
    char str[100];
    printf("输入一个字符串:");
    gets(str);
    int len = strlen(str);
    for (int i = 0; i < len; i++) {
        if(str[i] <= 'z' && str[i] >= 'a') {
            str[i] -= 32; // 小写转大写
        }
    }
    if ((fp = fopen("test", "w")) == NULL) {
        printf("文件打开失败\n");
        exit(0);
    }
    fprintf(fp, "%s", str);
    fclose(fp);
    return 0;
}
发布了140 篇原创文章 · 获赞 59 · 访问量 6万+

猜你喜欢

转载自blog.csdn.net/syzdev/article/details/104458899