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;
}
相关推荐
kkeeper~10 小时前
0基础C语言积跬步之数据在内存中的存储
c语言·数据结构·算法
qq38624619612 小时前
更新补发第6天:7天学会C语言,每天5分钟,不需要基础
c语言·for循环·循环语句·while循环·do-while循环
张暮笛18 小时前
深入浅出:C语言中的“虚表分派”
c语言
社交怪人19 小时前
【等差数列】信息学奥赛一本通C语言解法(题号1035)
c语言
不会C语言的男孩19 小时前
VS Code 中搭建 C/C++ 开发环境(MSYS2 编译器)
c语言·c++
学困昇20 小时前
Linux 信号机制详解:从 Ctrl+C 到 SIGCHLD,一文理解进程信号
linux·c语言·开发语言·人工智能·面试
AI科技星21 小时前
维度原本——基于超复数谱系的全域维度统一理论
c语言·前端·javascript·网络·electron
SoftLipaRZC21 小时前
C语言字符完全指南:字符函数与字符串函数
c语言·开发语言·算法
程序leo源1 天前
Qt界面优化详解
linux·c语言·开发语言·c++·qt·c#
Chen_harmony1 天前
二十二、动态内存管理
c语言·数据结构·算法