Skip to content

14291: 【原4291】凑数题

题目

题目描述

author: Guo Linsong 原OJ链接:https://acm.sjtu.edu.cn/OnlineJudge-old/problem/4291

Description

听说同学们学了指针,憨憨助教想借此机会考考大家,然而CPU大作业要写不完了,于是就有了这样一道凑数题...

写出以下代码中的两个函数$funA$和$funB$的声明与定义,使得$funA(p) = a$能实现通过指针$p$访问用户输入的字符串$a$,$funB$能将该字符串中的小写字母全部变成大写,并返回这个大写的字符串。

#include <iostream>
#include <cstring>
using namespace std;

// 写出两个函数的声明

int main() {
    char a[100], b[100];
    for(int i = 0; i < 3; ++i) {
        char **p;
        cin >> a;
        funA(p) = a;
        cout << funB(b, p);
    }
    return 0;
}

// 写出两个函数的定义

要求如下:

除了实现$funA$和$funB$外,不能修改包括main函数在内的其他代码,不能在全局定义新的变量、指针、数组和函数等,不能调用其他的库。

$funA$和$funB$内不能调用任何输入输出函数(包含但不限于cin,cout,scanf,prinf,getchar,putchar等等)。

不允许存在内存泄漏,由于OJ不能检测内存泄漏(同学们可以自行了解内存泄漏检测工具valgrind),助教将进行手动评测(以最后一次提交为准)。

用户输入的单个字符串长度不会超过$98$,而且只含有小写和大写字母。

Sample Input

zhiyuan
tryAtry
acisOK

Sample Output

ZHIYUAN
TRYATRY
ACISOK

Note

大家也可以顺便思考一下如果funB(b, *p)应该怎么做。

Oops! 本题目还没有解答!

助教老师们编题的速度,已经超过了解题的速度!

OJ翻了一新,但本解答集还大多用的是2017-2019级,甚至更早的同学们贡献的答案。

如果你已经AC了,可以的话,请您参考添加页面,与大家一起分享你的题解!