题目3:字符串拼接要求:编写一个函数,使用二维字符数组和指针操作来拼接两个字符串。参考思路:1.创建一个足够大的二维字符数组来存储结果。2.使用两个字符指针分别指向两个待拼接的字符串。3.将两个字符串的内容复制到结果数组中。
时间: 2024-12-16 07:25:03 浏览: 10
题目要求我们编写一个C++函数,使用二维字符数组(实际上是字符数组数组)和指针操作来拼接两个字符串。这里有一个简单的实现方法:
```cpp
#include <cstring> // 为了使用strcpy函数
// 函数声明
void string_concat(char (*result)[MAX_SIZE], char* str1, char* str2);
const int MAX_SIZE = 100; // 假设最大字符串长度不超过100个字符
// 拼接函数实现
void string_concat(char (*result)[MAX_SIZE], char* str1, char* str2) {
int len1 = strlen(str1); // 获取str1的长度
int len2 = strlen(str2); // 获取str2的长度
// 计算新的字符串长度,包括结束符'\0'
int total_length = len1 + len2 + 1;
// 如果结果数组不够大,先动态分配内存
if (total_length >= MAX_SIZE) {
result = new char[total_length];
} else {
result[len1] = '\0'; // 结果数组已经足够,直接添加str1的结束符
}
// 复制str1到结果数组
strncpy(result, str1, len1);
// 将str1的结束符替换为str2的第一个字符,然后继续复制str2
result[len1] = str2[0];
strncpy(result+len1+1, str2+1, len2);
}
// 示例用法
int main() {
char result[MAX_SIZE]; // 创建临时结果数组
char str1[] = "Hello";
char str2[] = "World!";
string_concat(result, str1, str2);
std::cout << result << std::endl; // 输出: HelloWorld!
return 0;
}
```
阅读全文