对两个字符数组str1. str2,实现将str2连接到str1的末尾,并且str1原来的末尾字符\0被新数据覆盖;连接后的字符串末尾添加\0'字符。注意str 1要足够长。
时间: 2024-11-29 08:32:37 浏览: 0
要实现这个功能,你可以使用C++标准库中的`std::strcat()`函数,但是题目要求手动操作,我们不使用内置函数,而是自己编写一个简单的函数。假设`str1`有足够的空间容纳`str2`加上`\0`。
首先,你需要找到`str1`的末尾(即最后一个非空格字符的位置),然后将`str2`的内容逐个复制到`str1`的末尾,最后添加`\0`。
以下是一个示例代码:
```cpp
#include <cstring> // for strlen() function
// 假设str1至少比str2多一个位置来保存'\0'
void appendStr(char* str1, const char* str2) {
size_t str1Length = strlen(str1);
size_t str2Length = strlen(str2);
// 将str2的内容复制到str1的末尾,从str1的末尾开始
char* dest = str1 + str1Length;
while (str2Length--) {
*dest = *str2++;
}
// 添加'\0'到新连接的字符串末尾
*dest = '\0';
}
int main() {
char str1[] = "Hello, ";
char str2[] = "world!";
appendStr(str1, str2);
// 打印结果
std::cout << str1 << std::endl;
return 0;
}
```
在这个例子中,`appendStr()`函数会在`str1`的末尾追加`str2`的内容,并确保添加了终止符`\0`。运行这段代码后,你会看到"Hello, world!"输出到控制台。
阅读全文