本关任务:写出所给代码中的两个函数funA和funB的声明与定义,使得funA(p)=a能实现通过指针p访问用户输入的字符串a,funB能将该字符串中的小写字母全部变成大写,并返回这个大写的字符串。 编程要求 根据提示,在右侧编辑器补充代码,除了实现funA和funB外,不能修改包括main函数在内的其他代码,不能在全局定义新的变量、指针、数组和函数等,不能调用其他的库。 funA和funB内不能调用任何输入输出函数(包含但不限于cin,cout,scanf,prinf,getchar,putchar等等)。 不允许存在内存泄漏,由于EC不能检测内存泄漏(同学们可以自行了解内存泄漏检测工具valgrind),助教将进行手动评测(以最后一次提交为准)。 每个测试用例有三行,每行对应一个字符串,长度不超过98,而且只含有小写和大写字母。 输出有三行,将输入转化为大写后,按顺序输出。 测试说明 平台会对你编写的代码进行测试: 测试输入: ieee tryAtry acisOK 预期输出: IEEE TRYATRY ACISOK
时间: 2023-06-14 07:03:46 浏览: 228
简要说明C语言中指针函数与函数指针的区别
```c++
#include <iostream>
#include <cstring>
using namespace std;
void funA(char* p, char* a);
char* funB(char* a);
// 在此处补充funA和funB的函数声明和定义
void funA(char* p, char* a) {
int len = strlen(a);
for (int i = 0; i < len; i++) {
*(p+i) = *(a+i);
}
}
char* funB(char* a) {
int len = strlen(a);
for (int i = 0; i < len; i++) {
if (*(a+i) >= 'a' && *(a+i) <= 'z') {
*(a+i) = *(a+i) - 'a' + 'A';
}
}
return a;
}
int main() {
char a[100], b[100], c[100];
char *p1 = a, *p2 = b, *p3 = c;
cin >> a >> b >> c;
funB(funA(p1, a));
funB(funA(p2, b));
funB(funA(p3, c));
cout << a << endl << b << endl << c << endl;
return 0;
}
```
阅读全文