通过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;
}
结果: