zhe题怎么作,指针c++😭

利用字符指针 p 实现字符串 s1中的小写字母变成大写字母


#include <iostream>
using namespace std;

void toUp(char *str);

int main()
{
    char s[1024];
    cin.getline(s, 1024); // 输入一行字符
    toUp(s);              // 调用toUp函数,转换成大写字母
    cout << s << endl;    // 输出变更后的新字符串
    return 0;
}

// 函数toUp:将str指向的字符串中的小写字母变成对应的大写字母
// 参数:str-指向字符串
void toUp(char *str)
{
    // 请在此添加代码,实现函数toUp
    /********** Begin *********/
    char *p = str; //先将串的首地址存起来
    while (*str != '\0')
    {
        if (*str >= 'a' && *str <= 'z')
            *str -= 32; //小写字母的ASCII码比对应大写的大32
        str++;
    }
    str = p; //将串的首地址恢复

    /********** End **********/
}

C++ 实现


#include <iostream>
#include <string>
#include <cctype>

using namespace std;

int main()
{
    string st("");
    cin >> st; //如果想读取一行所有的字符包括空格,就改成getline(cin, st);
    for(auto &c : st)
        c = toupper(c); //小写就变成大写,大写就保持不变
    cout << st;
    return 0;
}