C++利用指针,并且不使用cstring库函数,实现一个自己的字符串连接函数mystrcat。 题目中已经给出main函数,main函数会调用mystrcat函数进行测试,会输入两个字符串A和Bmystrcat返回连接后的字符串,并且在A和B之间加上一个字符“-”。输入的字符串A和B内部没有空格,A和B之间可以以空格或换行分隔。 测试输入:Com puter 预期输出:Com-puter
时间: 2024-03-06 22:49:50 浏览: 77
好的,我们可以不使用cstring库函数,利用指针实现一个自己的字符串连接函数mystrcat。
代码如下:
```c++
#include <iostream>
using namespace std;
char* mystrcat(char* A, char* B) {
int lenA = 0, lenB = 0;
char* p = A;
while (*p) {
lenA++;
p++;
}
p = B;
while (*p) {
lenB++;
p++;
}
char* res = new char[lenA + lenB + 2];
char* q = res;
while (*A) {
*q = *A;
q++;
A++;
}
*q = '-';
q++;
while (*B) {
*q = *B;
q++;
B++;
}
*q = '\0';
return res;
}
int main() {
char A[100], B[100];
cin.getline(A, 100);
cin.getline(B, 100);
char* res = mystrcat(A, B);
cout << res << endl;
delete[] res;
return 0;
}
```
这个函数接受两个字符串A和B作为输入,返回连接后的字符串,并在A和B之间加上一个字符“-”。
将这个函数放入题目给出的main函数中进行测试,即可得到预期输出:
输入:
```
Com puter
```
输出:
```
Com-puter
```
注意,输入的字符串A和B内部可能包含空格,需要使用`cin.getline`函数进行输入。由于返回的是一个动态分配的内存空间,所以在使用完后需要手动释放内存,即使用`delete[]`函数。此外,为了不使用cstring库函数,我们使用指针进行字符串操作。
阅读全文