美文网首页
57.C语言字符串处理:将小写字母转换为大写字母(附测试用例和源

57.C语言字符串处理:将小写字母转换为大写字母(附测试用例和源

作者: Joyner2018 | 来源:发表于2025-07-17 00:02 被阅读0次

在 C 语言开发中,字符串处理是最常见、也是最基本的操作之一。今天我们将实现一个实用的小功能:将字符串中的所有小写字母转换为对应的大写字母,并通过多个测试用例验证函数的正确性。

本文适用于正在使用 VC++6.0 环境进行 C 语言学习的朋友,同时也适用于希望打牢字符串基础的初学者。


🧠目标

  • 编写一个 C 语言函数 to_uppercase(),将输入字符串中所有的小写字母转换为大写。
  • 在主函数 main() 中对该函数进行多组测试。
  • 提供完整可运行源码,确保兼容 VC++6.0 环境。

📌基础原理:ASCII 值的秘密

在 C 语言中,字符是基于 ASCII 码的。在 ASCII 表中:

  • 'a''z' 的范围是:97 到 122
  • 'A''Z' 的范围是:65 到 90
  • 小写和大写字母之间的固定差值是 32

所以,如果一个字符 ch 是小写字母,只需执行:

ch = ch - ('a' - 'A');  // 即 ch = ch - 32;

就可以完成小写转大写的操作。


🔧代码实现

下面是完整的 C 语言代码,包含函数实现与多个测试用例:

#include <stdio.h>

// 函数声明
void to_uppercase(char *str);

// 主函数
int main() {
    char test1[] = "hello world";
    char test2[] = "HeLLo123";
    char test3[] = "ALLCAPS";
    char test4[] = "test!@#";
    char test5[] = "";

    // 测试用例 1
    to_uppercase(test1);
    printf("Test 1: %s\n", test1);  // 预期输出: HELLO WORLD

    // 测试用例 2
    to_uppercase(test2);
    printf("Test 2: %s\n", test2);  // 预期输出: HELLO123

    // 测试用例 3
    to_uppercase(test3);
    printf("Test 3: %s\n", test3);  // 预期输出: ALLCAPS

    // 测试用例 4
    to_uppercase(test4);
    printf("Test 4: %s\n", test4);  // 预期输出: TEST!@#

    // 测试用例 5
    to_uppercase(test5);
    printf("Test 5: \"%s\"\n", test5);  // 预期输出: ""

    return 0;
}

// 函数定义:小写转大写
void to_uppercase(char *str) {
    int i = 0;
    while (str[i] != '\0') {
        if (str[i] >= 'a' && str[i] <= 'z') {
            str[i] = str[i] - ('a' - 'A');
        }
        i++;
    }
}

🧪测试结果(运行截图)

程序运行后输出如下结果:

Test 1: HELLO WORLD
Test 2: HELLO123
Test 3: ALLCAPS
Test 4: TEST!@#
Test 5: ""

从测试结果可以看出,该函数成功地将字符串中的小写字母转换成了大写字母,保留了数字、符号和大写字符。


⚠️关于 gets() 函数的小提示

在最初的演示中,我们使用了 gets() 函数进行字符串输入,这在 VC++6.0 是被广泛使用的方式。但需要注意的是,**gets()**** 是不安全的**,因为它不会检查数组边界,容易导致缓冲区溢出。在现代 C 语言开发中,推荐使用:

fgets(str, sizeof(str), stdin);

不过考虑到 VC++6.0 环境和入门学习,这里使用 gets() 是可以接受的,只要在实际开发中注意规避即可。


✅总结

本文实现了一个简单但常用的 C 语言字符串处理函数,通过 ASCII 值操作 将小写字母转换为大写,代码简洁、逻辑清晰。在实际编程中,这类字符处理技巧非常重要,尤其在数据清洗、格式转换、输入校验等场景中经常用到。


📌延伸练习(思考题)

想进一步提高?你可以尝试以下变种或升级版:

  1. 写一个函数,将大写字母转换为小写。
  2. 写一个函数,统计字符串中小写字母的个数。
  3. 写一个函数,把字符串中的所有英文字母反转大小写(a→A,A→a)。
  4. 编写版本支持 Unicode 编码(宽字符 wchar_t)的大小写转换。

感谢阅读!如果你觉得这篇文章对你有帮助,欢迎点赞、收藏或分享给你的 C 语言小伙伴~ 🙌

相关文章

网友评论

      本文标题:57.C语言字符串处理:将小写字母转换为大写字母(附测试用例和源

      本文链接:https://www.haomeiwen.com/subject/radogjtx.html