如何进行大小写字母转换
大小写字母的转换基本上可以说是每个新手程序员必写的一个代码了,但是处于刚懵懂入门的时候,想要很好的写出这么一段代码还是有一定的难度的,当初我自己也是跟着网上抄抄,并不知道是什么意思,是怎么实现的,因为代码过于简单,网上似乎并没有对它进行分析的文章,所以我就对这个代码进行简单的讲解与分析。
先上代码,大家可以先自行阅读一下,当然我的代码并不是最优解,写的最好的,所以仅供参考,如果有更好的写法,欢迎在评论区指正。
#define _CRT_SECURE_NO_WARNINGS 1
#pragma warning(disable:6031)
#include<stdio.h>
int main()
{
char ch;
printf("请输入一个字母:\n");
scanf("%c", &ch);
if (ch>=65&&ch <= 91) //对应ASCII表判断输入字母的ASCII值,大写字母A~Z的ASCII值为65~91
{
ch = ch + 32; //字母a~z的ASCII值为97~123,则给该字符加32之后,他的ASCII值变为对应的小写字母的ASCII值
printf("该字母的小写形式为:%c\n", ch);
printf("该字母转换后的ASCII码值为:%d\n", ch);
}
else if(ch >= 'a' && ch <= 'z')
{
printf("该字母的大写形式为:%c\n", ch - 32);
}
else
{
printf("error");
}
return 0;
}
#define _CRT_SECURE_NO_WARNINGS 1
#pragma warning(disable:6031)
两条预处理命令是因为我使用的VsStudio,这个软件的问题,想知道为什么的话可以参考我的另外一篇博客->VsStudio中scanf返回值被忽略的原因及其解决方法
除去顶部的两行代码 剩下的代码 我们由外往里,自上而下的分析是如何写的。
先看最外层的也是对于新手最应该烂熟于心的几行代码
#include<stdio.h>
int main()
{
return 0;
}
#include<stdio.h>
这是一条编译预处理命令称为文件包含命令,或者用我们最熟悉的说法就是引入头文件、库函数
stdio.h是C编译系统提供的一个文件名,stdio是“standard input & output”的缩写,即有关标准输入输出的信息。因为我们用到了printf
这个函数,所以我们就需要引入这个头文件
int main()
首先这个int
代表这个是整数类型的,所以这个函数需要一个返回值,一般情况下我们程序正常结束时使用return 0;
,这个main()
后面是程序的入口函数,也就是整个程序的住函数,所以叫main
函数()
代表是一个函数,main
是这个函数的名字。
接下来我们在看看函数里的基本结构:
首先整个函数用花括号{}包裹了起来,在C语言中,被{}包裹起来的称之为代码块,是一个整体
代码的核心思想也是重难点就是怎么进行大小写转换
ASCII码对照表,根据对照表我们可以知道大小写字母在表中的值差为±32,而C语言在±运算时,实际是将ASCII值进行±的所以其实我们只要进行简单的±32程序本身就可以将其加减后的ASCII码值再转化为对应的字符,字母是字符类型的变量,所以我们开始定义了一个char ch
变量,%c
是按照字符接收,%c
是格式化输入输出符,C语言的这种符号很多,可以参考博客C语言输入输出格式符,之后再进行简单的if-else逻辑判断就好了。