📜  C测验– 111 |问题4(1)

📅  最后修改于: 2023-12-03 15:00:12.745000             🧑  作者: Mango

C测验-111 | 问题4

简介

本题主要考察程序员在C语言中使用指针的能力。该题给定了一个由字符组成的字符串,程序员需要实现一个函数将该字符串中所有的小写字母转换成大写字母,并返回转换后的字符串。

函数原型
char* toUpper(char *str);
输入参数
  • char *str:指向一个由小写字母和大写字母组成的字符串
输出参数
  • 返回类型为char*的指针,指向转换后的字符串
示例
输入
char *str = "hello world";
char *result = toUpper(str);
输出
printf("%s", result); // 输出 "HELLO WORLD"
实现要求
  1. 实现函数toUpper(char *str)
  2. 如果输入字符串中没有小写字母,则直接返回输入字符串;
  3. 转换后的字符串中所有小写字母都需要变成大写字母。
提示
  • C语言中,大写字母和小写字母在ASCII编码表中是相邻的;
  • 可以使用指针访问字符串中的每个字符;
  • 需要注意字符串的结尾字符\0
参考实现
char *toUpper(char *str)
{
    char *s = str;
    while (*s != '\0')
    {
        if (*s >= 97 && *s <= 122) // 判断是否为小写字母
        {
            *s = *s - 32; // 转换为大写字母
        }
        s++;
    }
    return str;
}