c语言 touppercase

99ANYc3cd6
预计阅读时长 8 分钟
位置: 首页 C语言 正文

在C语言中,将字符串转换为大写通常需要遍历字符串的每个字符,并使用标准库函数 toupper() 来转换,以下是几种实现方式:

c语言 touppercase
(图片来源网络,侵删)

方法1:使用标准库函数 toupper()(推荐)

<ctype.h> 中的 toupper() 函数可以将小写字母转换为大写字母,非字母字符保持不变。

示例代码

#include <stdio.h>
#include <ctype.h>  // 包含 toupper() 函数
#include <string.h> // 包含 strlen() 函数
void to_uppercase(char *str) {
    for (int i = 0; str[i] != '\0'; i++) {
        str[i] = toupper((unsigned char)str[i]);
    }
}
int main() {
    char text[] = "Hello, World! 123";
    printf("原始字符串: %s\n", text);
    to_uppercase(text);
    printf("转换后字符串: %s\n", text);
    return 0;
}

输出:

原始字符串: Hello, World! 123
转换后字符串: HELLO, WORLD! 123

关键点

  1. toupper() 的参数必须是 unsigned charEOF,否则某些编译器可能会发出警告,我们强制转换为 (unsigned char)
  2. 直接修改原字符串str[i] = toupper(...)),而不是创建新字符串。

方法2:创建新字符串(不修改原字符串)

如果不想修改原字符串,可以创建一个新的字符串存储转换后的结果。

示例代码

#include <stdio.h>
#include <ctype.h>
#include <string.h>
void to_uppercase_copy(const char *src, char *dest) {
    for (int i = 0; src[i] != '\0'; i++) {
        dest[i] = toupper((unsigned char)src[i]);
    }
    dest[strlen(src)] = '\0'; // 确保新字符串以 '\0' 
}
int main() {
    char original[] = "Test String";
    char upper[100]; // 确保足够大
    printf("原始字符串: %s\n", original);
    to_uppercase_copy(original, upper);
    printf("转换后字符串: %s\n", upper);
    return 0;
}

输出:

c语言 touppercase
(图片来源网络,侵删)
原始字符串: Test String
转换后字符串: TEST STRING

方法3:使用指针遍历(更高效)

可以用指针代替数组索引,使代码更简洁。

示例代码

#include <stdio.h>
#include <ctype.h>
void to_uppercase_ptr(char *str) {
    while (*str) {
        *str = toupper((unsigned char)*str);
        str++;
    }
}
int main() {
    char text[] = "pointer method";
    printf("原始字符串: %s\n", text);
    to_uppercase_ptr(text);
    printf("转换后字符串: %s\n", text);
    return 0;
}

输出:

原始字符串: pointer method
转换后字符串: POINTER METHOD

方法 特点 适用场景
toupper() 直接修改 简单、高效,但会修改原字符串 适用于不需要保留原字符串的情况
创建新字符串 不修改原字符串,但需要额外空间 适用于需要保留原字符串的情况
指针遍历 代码更简洁,效率高 适用于熟悉指针操作的开发者

推荐使用方法1toupper() 直接修改),除非有特殊需求需要保留原字符串。

c语言 touppercase
(图片来源网络,侵删)
-- 展开阅读全文 --
头像
postgresql c 语言
« 上一篇 01-03
C语言memorySearch如何高效实现与优化?
下一篇 » 01-03

相关文章

取消
微信二维码
支付宝二维码

目录[+]