通过ascll码表我们可以知道大写字母与小写字母相差32个数(小写字母比大写字母大)。因此,通过相加减32即可转换大小写字母。
#include <stdio.h>
int main()
{
char ch = 'c';
char CH = 'A';
printf("%c\n", ch - 32);
printf("%c\n", CH + 32);
return 0;
}
结果:
还有第二种方法。
islower是一个分类小写字母a~z的函数,这里识别小写字母a转成大写字母A。
isupper是一个分类大写字母A~Z的函数,这里识别大写字母A转成小写字母a。
#include <stdio.h>
#include <ctype.h>
int main()
{
char str[] = "Hello World";
char ch;
int i = 0;
while (str[i])
{
ch = str[i];
if (islower(ch))//islower函数的参数是int,ch的类型是char,大空间可以兼容小空间
{
ch -= 32;
}
i++;
putchar(ch);
}
return 0;
}
结果:
isupper同理。
第三种方法
int tolower ( int c ); //将参数传进去的大写字母转小写
int toupper ( int c ); //将参数传进去的小写字母转大写
#include <stdio.h>
#include <ctype.h>
int main()
{
char str1 = 'H';
char str2 = 'a';
putchar(tolower(str1));
printf("\n");
putchar(toupper(str2));
return 0;
}
结果: