C++实现一个自己的字符串连接函数mystrcat。 题目中已经给出main函数,main函数会调用mystrcat函数进行测试,会输入两个字符串A和Bmystrcat返回连接后的字符串,并且在A和B之间加上一个字符“-”。 测试说明
时间: 2024-02-28 10:56:29 浏览: 23
好的,很高兴为您解答。请参考下面的代码实现:
```c++
#include<iostream>
using namespace std;
char* mystrcat(char* A, char* B){
int lenA = strlen(A);
int lenB = strlen(B);
char* res = new char[lenA + lenB + 2]; // 加2是为了预留出连接符“-”和字符串结尾符“\0”的位置
strcpy(res, A);
res[lenA] = '-';
strcpy(res + lenA + 1, B);
return res;
}
int main(){
char A[100], B[100];
cin >> A >> B;
char* res = mystrcat(A, B);
cout << res << endl;
delete[] res; // 动态分配的内存需要手动释放
return 0;
}
```
在上面的代码中,我们定义了一个mystrcat函数,它接受两个参数A和B,其中A和B都是char类型的指针,代表两个字符串。mystrcat函数的返回值也是char类型的指针,代表连接后的字符串。
在函数内部,我们先用strlen函数获取A和B的长度,然后动态分配一个长度为lenA + lenB + 2的字符数组res(注意要加上连接符“-”和字符串结尾符“\0”的位置)。接着,我们将A的内容复制到res中,再在res[lenA]的位置插入连接符“-”,最后将B的内容接在res[lenA+1]的位置即可。最后,我们返回res。
在main函数中,我们先用cin读入两个字符串A和B,然后调用mystrcat函数将它们连接起来,并将结果保存在res中。最后,我们输出res的内容,并释放动态分配的内存。
希望这个实现能够帮助您。如果还有其他问题,欢迎随时向我提问。