在C语言中,实现字符串中大小写字符的相互转化有多种方法。以下是几种可行的方法,每种方法都会附有注释说明:
方法一:使用位运算
cpp
#include <stdio.h>
// 将字符的大写字母转换为小写字母,小写字母转换为大写字母
char toggleCase(char ch) {
// 检查字符是否为大写字母
if (ch >= 'A' && ch <= 'Z') {
// 大写字母转换为小写字母:将第5位(32)置1,实现转换
return ch | 0x20;
}
// 检查字符是否为小写字母
else if (ch >= 'a' && ch <= 'z') {
// 小写字母转换为大写字母:将第5位(32)置0,实现转换
return ch & 0xDF;
}
// 如果字符不是字母,则保持不变
else {
return ch;
}
}
int main() {
char str[100];
printf("Enter a string: ");
scanf("%s", str);
// 对输入的字符串中的每个字符进行大小写转换
for (int i = 0; str[i] != '\0'; i++) {
str[i] = toggleCase(str[i]);
}
printf("Toggled case: %s\n", str);
return 0;
}
方法二:使用条件语句实现转换
cpp
#include <stdio.h>
// 将字符的大写字母转换为小写字母,小写字母转换为大写字母
char toggleCase(char ch) {
// 检查字符是否为大写字母
if (ch >= 'A' && ch <= 'Z') {
// 大写字母转换为小写字母:ASCII码中大写字母与小写字母相差32
return ch + 32;
}
// 检查字符是否为小写字母
else if (ch >= 'a' && ch <= 'z') {
// 小写字母转换为大写字母:ASCII码中小写字母与大写字母相差32
return ch - 32;
}
// 如果字符不是字母,则保持不变
else {
return ch;
}
}
int main() {
char str[100];
printf("Enter a string: ");
scanf("%s", str);
// 对输入的字符串中的每个字符进行大小写转换
for (int i = 0; str[i] != '\0'; i++) {
str[i] = toggleCase(str[i]);
}
printf("Toggled case: %s\n", str);
return 0;
}