其实原理很简单,让我们来看看ascll表,就一目了然了.
我们来对比一下大小写字母对应的十进制值,A 是81,a 是113,B 82 b 114 可以很明显的发现差值是固定的 ,a-A==b-B,所以我们把一个大写字母加上这个差值,它就变成了小写字母,反之一个小写字母减去这个差值,就变成了大写字母.(当然计算机的底层是二进制,不过管它啥进制,差值是固定的就行)
代码实现
#include<stdio.h>
#include<string.h>
int main()
{
char str[] = { "HeLLo World " };
int len = strlen(str);
printf(" 转换前的字符串:%s\n", str);
for (int i = 0; i <len ; i++)
{
if (str[i] >= 'A' && str[i] <= 'Z')
{
str[i] = str[i] + ('a'-'A');
}
}
printf("转换后的字符串:%s\n", str);
return 0;
}
运行结果
编译器是Microsoft Visual Studio2019