编写一个程序,将字符数组s2中的全部字符复制到字符数组s1中。不用strepy函注意:函数就是 数。复制时,'\0'也要复制过去。'\0'后面的字符不复制。
时间: 2024-10-15 13:19:10 浏览: 17
要编写一个简单的C++函数来完成这个任务,你可以创建一个新的函数,接受两个`char`数组指针(分别代表`s1`和`s2`),以及它们的长度。然后,遍历第一个字符串`s2`,直到遇到`\0`为止,将字符逐个复制到第二个字符串`s1`。由于C++数组的最后一个元素通常表示字符串结束的`\0`,所以我们在复制时不需特别处理。
这是一个示例函数:
```cpp
#include <iostream>
// 定义复制函数,参数为源和目标字符数组指针,以及源数组长度
void copyChars(char* s1, char* s2, int length) {
// 遍历源字符串,直到遇到'\0'
for (int i = 0; i < length; ++i) {
// 只有当s2[i]不是'\0'时才复制
if (s2[i] != '\0') {
s1[i] = s2[i];
} else {
break; // 去掉'\0'后的所有字符
}
}
// 结尾添加'\0'确保目标字符串结束
s1[length] = '\0';
}
int main() {
char s1[50], s2[] = "Hello, \0World!\0";
std::cout << "Original s2: " << s2 << std::endl;
// 分配空间给s1,这里假设你知道它的最大可能大小
copyChars(s1, s2, sizeof(s2) - 1); // 注意减去1是因为字符串数组末尾的'\0'
std::cout << "Copied s1: " << s1 << std::endl;
return 0;
}
```
在这个例子中,`sizeof(s2) - 1`用于计算字符串`s2`的字节数(包括结束符`\0`),因为数组下标从0开始,所以需要减一。
运行这段代码后,s1将包含s2的内容(但不含`\0`后面的部分)。
阅读全文