C语言 大小写字母转换

目录

1.问题描述

1.1描述

1.2输入描述:

1.3输出描述:

1.4示例

1.5备注:

2.代码解读

2.1使用ASCII码值的版本

2.2使用getchar吸收回车的版本

2.3使用函数的版本

3.以下是三种方式的全部代码

4.结语


1.问题描述

1.1描述

实现字母的大小写转换。多组输入输出。

1.2输入描述:

多组输入,每一行输入大写字母。

1.3输出描述:

针对每组输入输出对应的小写字母。

1.4示例

输入:
A
B
输出:
a
b

1.5备注:

多组输入过程中要注意“回车”也是字母,所以要“吸收”(getchar())掉该字母。

2.代码解读

2.1使用ASCII码值的版本

#include <stdio.h>
int main() {
    char ch=0;
    while(scanf("%c",&ch)==1)
    {
        if(ch>='a' && ch<='z')
      //这里的ch存储的是ASCII码值,
      //当ch的ASCII码值大于等于a的ASCII码值或者小于等于z的ASCII码值时,
      //才能运行下去

      //要查ASCII码值,请看这篇博客:ASCII码表-CSDN博客文章浏览阅读62次。今天给大家找了一张清晰的彩色ASCII码表,希望各位能够喜欢!https://blog.csdn.net/qq_58094522/article/details/137053258
            printf("%c\n",ch-32);
      //根据ASCII码值表,a的ASCII码值比A的ASCII码值多32
      // 所以要是将小写的a转为大写的A,这里需要-32才行

        else if(ch>='A' && ch<='Z')

//这里不能直接用else来表示,因为输入字母时还会输入一个回车,而回车也是字母,在内存中占据ASCII码值,需要用getchar()掉该字母,下面一个主函数会演示。
      //这里的ch存储的是ASCII码值,
      //当ch的ASCII码值大于等于A的ASCII码值或者小于等于Z的ASCII码值时,
      //才能运行下去

            printf("%c\n",ch+32);
      //根据ASCII码值表,A的ASCII码值比a的ASCII码值少32
      // 所以要是将转为大写的A,这里需要+32才行
      // 所以要是将大写的A转为小写的a,这里需要+32才行

    }
    return 0;
}

2.2使用getchar吸收回车的版本

int main() {
    char ch = 0;
    while (scanf("%c", &ch) == 1)
    {
        if (ch >= 'a' && ch <= 'z')
            printf("%c\n", ch - 32);
        else
            printf("%c\n", ch + 32);
        getchar();//用于吸收回车这个字母
    }
    return 0;
}

2.3使用函数的版本

#include <ctype.h>
#include <stdio.h>
int main() {
    char ch = 0;
    //scanf读取成功的时候,返回的是读取的数据的个数
    while (scanf("%c", &ch) == 1)//scanf函数在读取失败的时候返回EOF
    {                //所以这里也可以改写为scanf("%c",&ch)!=EOF
        if (islower(ch))
            printf("%c\n", toupper(ch));
        else if (isupper(ch))
            printf("%c\n", tolower(ch));
    }
    return 0;
}

3.以下是三种方式的全部代码

#include <stdio.h>
int main() {
    char ch=0;
    while(scanf("%c",&ch)==1)
    {
        if(ch>='a' && ch<='z')
      //这里的ch存储的是ASCII码值,
      //当ch的ASCII码值大于等于a的ASCII码值或者小于等于z的ASCII码值时,
      //才能运行下去
            printf("%c\n",ch-32);
      //根据ASCII码值表,a的ASCII码值比A的ASCII码值多32
      // 所以要是将小写的a转为大写的A,这里需要-32才行
        else if(ch>='A' && ch<='Z')//这里不能直接用else来表示,因为输入字母时还会输入一个回车,而回车也是字母,在内存中占据ASCII码值,需要用getchar()掉该字母,下面一个主函数会演示。
      //这里的ch存储的是ASCII码值,
      //当ch的ASCII码值大于等于A的ASCII码值或者小于等于Z的ASCII码值时,
      //才能运行下去
            printf("%c\n",ch+32);
      //根据ASCII码值表,A的ASCII码值比a的ASCII码值少32
      // 所以要是将转为大写的A,这里需要+32才行
      // 所以要是将大写的A转为小写的a,这里需要+32才行
    }
    return 0;
}
#include <stdio.h>
int main() 
{
    char ch = 0;
    while (scanf("%c", &ch) == 1)
    {
        if (ch >= 'a' && ch <= 'z')
            printf("%c\n", ch - 32);
        else
            printf("%c\n", ch + 32);
        getchar();//用于吸收回车这个字母
    }
    return 0;
}
#include <stdio.h>
#include <ctype.h>//使用islower,isupper,toupper,tolower函数需要引用的头文件
int main() {
    char ch = 0;
    //scanf读取成功的时候,返回的是读取的数据的个数
    while (scanf("%c", &ch) == 1)//scanf函数在读取失败的时候返回EOF
    {                //所以这里也可以改写为scanf("%c",&ch)!=EOF
        if (islower(ch))
            printf("%c\n", toupper(ch));
        else if (isupper(ch))
            printf("%c\n", tolower(ch));
    }
    return 0;
}

4.结语

今天的经验分享就到这里,有喜欢的朋友可以点赞➕评论➕收藏➕关注,如果有不懂的地方可以咨询博主,谢谢大家支持博主!

相关推荐

  1. C语言大小写字母转换详解

    2024-04-01 22:24:04       34 阅读
  2. C语言大小写字母转化

    2024-04-01 22:24:04       31 阅读
  3. C语言大小写字母转化

    2024-04-01 22:24:04       25 阅读
  4. C语言大小写字母转化

    2024-04-01 22:24:04       31 阅读
  5. c语言大小字母转换程序

    2024-04-01 22:24:04       23 阅读
  6. c语言中的大小写字母转换怎么转?

    2024-04-01 22:24:04       28 阅读
  7. c语言大小写转换

    2024-04-01 22:24:04       31 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-04-01 22:24:04       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-04-01 22:24:04       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-04-01 22:24:04       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-04-01 22:24:04       20 阅读

热门阅读

  1. 提取单选框的值,并通过ajax传值到后台

    2024-04-01 22:24:04       14 阅读
  2. Spring 的 Ioc配置

    2024-04-01 22:24:04       12 阅读
  3. Python:文件读写

    2024-04-01 22:24:04       15 阅读
  4. NodeJs(前端面试题整合)

    2024-04-01 22:24:04       15 阅读
  5. 潍坊如何申请专利

    2024-04-01 22:24:04       14 阅读
  6. RTOS--异常向量和中断向量

    2024-04-01 22:24:04       15 阅读
  7. c++计算浮点数相除的余

    2024-04-01 22:24:04       16 阅读
  8. C++20中的jthread

    2024-04-01 22:24:04       11 阅读
  9. 密码攻击

    2024-04-01 22:24:04       11 阅读
  10. SpringBoot单元测试

    2024-04-01 22:24:04       16 阅读