【C语言学习疑难杂症】专栏说明:
分享C语言截断一些容易被大部分同学忽略的重点、难点知识,帮助C语言知识学习的拔高。
专栏地址:
方法一:使用位运算
这种方法利用ASCII码中大小写字母的特殊规律,通过位运算来进行大小写转换。
#include <stdio.h>
char toLowerCase(char c) {
// 如果是大写字母
if (c >= 'A' && c <= 'Z') {
// 利用位运算将大写字母转换为小写字母
return c | 32;
}
return c; // 如果不是大写字母,则不变
}
char toUpperCase(char c) {
// 如果是小写字母
if (c >= 'a' && c <= 'z') {
// 利用位运算将小写字母转换为大写字母
return c & ~32;
}
return c; // 如果不是小写字母,则不变
}
int main() {
char ch = 'A';
printf("Original: %c\n", ch);
ch = toLowerCase(ch);
printf("To Lowercase: %c\n", ch);
ch = toUpperCase(ch);
printf("To Uppercase: %c\n", ch);
return 0;
}
方法二:使用大写字母+32,小写字母-32
根据ascii表的字符规律,大写字母+32可以得到对应小写字母,小写字母-32可以得到对应大写字母。
#include<stdio.h>
int my_toupper(int ch)
{
if (ch >= 97 && ch <= 122)
return ch - 32;
else
return ch;
}
int my_tolower(int ch)
{
if (ch >= 65 && ch <= 90)
return ch + 32;
else
return ch;
}
int main()
{
char ch = 'a';
ch=my_toupper(ch);
printf("%c", ch);
ch = my_tolower(ch);
printf("%c", ch);
return 0;
}
方法三:使用标准库函数
C语言提供了标准库函数 tolower()
和 toupper()
来进行大小写转换。
#include <stdio.h>
#include <ctype.h>
int main() {
char ch = 'A';
printf("Original: %c\n", ch);
ch = tolower(ch);
printf("To Lowercase: %c\n", ch);
ch = toupper(ch);
printf("To Uppercase: %c\n", ch);
return 0;
}
【C语言学习疑难杂症】专栏说明:
分享C语言截断一些容易被大部分同学忽略的重点、难点知识,帮助C语言知识学习的拔高。
专栏地址: