3、编写一个程序,将字符数组s2中的全部字符复制到字符数组s1中,不用strcpy函数。注意,复制时,’\0’也要复制过去。‘\0’后面的字符不复制。测量数组s2长度,用循环逐个赋值,后面去检测s1的末尾是不是有空字符
时间: 2024-11-27 17:16:26 浏览: 0
C语言程序设计-编写一个程序,将字符数组s2中的全部字符拷贝到字符数组s1中,不能使用strcpy函数。拷贝时,
5星 · 资源好评率100%
要在不使用`strcpy`函数的情况下,将字符数组`s2`中的内容逐个复制到`s1`中,并保留`\0`终止符,可以采用循环遍历的方式。以下是一个简单的C语言示例:
```c
#include <stdio.h>
#include <string.h>
void copyChars(char* s1, char* s2) {
int len_s2 = strlen(s2); // 获取s2的长度
for (int i = 0; i < len_s2; i++) { // 遍历s2直到找到'\0'
if (s2[i] == '\0') break; // 如果遇到'\0'就停止复制
s1[i] = s2[i]; // 将s2的字符复制到s1
}
s1[len_s2] = '\0'; // 在s1末尾添加'\0',表示字符串结束
}
int main() {
char s1[50];
char s2[] = "Hello, World!\0"; // 示例字符数组
printf("Original s2: %s\n", s2);
// 调用copyChars函数
copyChars(s1, s2);
printf("Copied to s1: %s\n", s1);
// 检查s1是否以'\0'结尾
if (s1[strlen(s1) - 1] == '\0')
printf("s1 ends with a null character.\n");
else
printf("s1 does not end with a null character.\n");
return 0;
}
```
在这个程序中,`copyChars`函数接受两个字符指针作为参数,然后通过`strlen`获取`s2`的实际长度,并在循环内逐个复制字符。当遇到`\0`时跳出循环。最后,在`s1`的末尾手动添加`\0`以表示字符串结束。
阅读全文