C语言实现大小写相互转化

在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;
}
相关推荐
爱编码的小八嘎44 分钟前
C语言完美演绎3—8
c语言
Irissgwe2 小时前
C&C++内存管理
c语言·开发语言·c++·c++内存管理
雾岛听蓝2 小时前
C文件操作与系统IO
linux·c语言·开发语言·经验分享·笔记·算法
Yupureki3 小时前
《C++实战项目-高并发内存池》3.ThreadCache构造
服务器·c语言·c++·算法·哈希算法
spiritualfood4 小时前
蓝桥杯大学b组水质检测
c语言·c++·算法·青少年编程·职场和发展·蓝桥杯
01二进制代码漫游日记6 小时前
C/C++中的内存区域划分
c语言·jvm·数据结构·学习
炸膛坦客6 小时前
单片机/C语言八股:(三)C 语言编译器的优化功能,包括 keil(仅作了解)
c语言·单片机·嵌入式硬件
人道领域7 小时前
【绝对干货】C语言常量,变量,内存全方位总结:从入门到精通,这一篇就够了!
c语言·开发语言
代码改善世界7 小时前
【数据结构】八大排序算法详解(C语言实现)|插入排序、希尔排序、选择排序、堆排序、冒泡排序、快速排序、归并排序、计数排序
c语言·数据结构·排序算法
香水5只用六神7 小时前
【TIM】基本定时器定时实验(2)
c语言·开发语言·stm32·单片机·嵌入式硬件·mcu·学习