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;
}
相关推荐
HUN金克斯20 分钟前
C++/C函数
c语言·开发语言·c++
慢半拍iii21 分钟前
数据结构——F/图
c语言·开发语言·数据结构·c++
m0_6371469331 分钟前
零基础入门 C 语言基础知识(含面试题):结构体、联合体、枚举、链表、环形队列、指针全解析!
c语言·开发语言·链表
weixin_461259412 小时前
[C]C语言日志系统宏技巧解析
java·服务器·c语言
whoarethenext5 小时前
使用 C/C++的OpenCV 实时播放火柴人爱心舞蹈动画
c语言·c++·opencv
能工智人小辰5 小时前
Codeforces Round 509 (Div. 2) C. Coffee Break
c语言·c++·算法
iCxhust10 小时前
Prj10--8088单板机C语言8259测试(1)
c语言·开发语言
apocelipes15 小时前
Linux c 运行时获取动态库所在路径
linux·c语言·linux编程
int型码农16 小时前
数据结构第八章(一) 插入排序
c语言·数据结构·算法·排序算法·希尔排序
学习噢学个屁18 小时前
基于STM32语音识别柔光台灯
c语言·stm32·单片机·嵌入式硬件·语音识别