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;
}
相关推荐
未来之窗软件服务5 小时前
计算机二级[英文]-C 字符串移动—东方仙盟
c语言·开发语言·仙盟创梦ide·东方仙盟
是隼人10 小时前
buuctf-pwn bypwn(ret2shellcode)题解(学习过程持续更新)
c语言·学习·安全·pwn入门·ctf入门
T1mzhou11 小时前
ARM64 Linux 6.10内核启动流程6-psci.c和ATF/U-Boot 的电源接口
linux·服务器·c语言
是隼人11 小时前
buuctf-pwn PWN2(整数溢出)题解(学习过程持续更新)
c语言·学习·安全·pwn入门·ctf入门
LuminousCPP12 小时前
数据结构 - 排序(二):快速排序从错误初版到优化版|双指针划分 + 三数取中 + 小区间插入优化
c语言·数据结构·笔记·算法·排序算法
竞赛考级题库12 小时前
202606 青少年等级考试C/C++真题一级 建议答题时长:60min
java·c语言·c++
迷茫、Peanut13 小时前
C语言混合链接
c语言
wdfk_prog13 小时前
RT-Thread Kconfig 配置明明是 y,为什么 rtconfig.h 就是不生成?一次 `_PATH` 后缀踩坑复盘
c语言
是隼人13 小时前
buuctf-pwn jarvisoj_level5(64位ret2libc)题解(学习过程持续更新)
c语言·学习·安全·pwn入门·ctf入门
Suxing914 小时前
C语言基础分享:C语言文件操作:从“写日记”到“拍电影”的存盘指南
c语言·开发语言