利用指针实现字符串的复制功能 步骤 1)定义一个可保存字符串的字符数组1和一个用来粘贴的空字符数组2; 2)定义指针并指向字符数组1和字符数组2 3)只要字符数组1的当前元素不是结束标记,就将当前元素赋值到数组2中,然后将指针后移一个位置 4)将数组2输出 5)测试
时间: 2024-02-26 13:57:55 浏览: 89
好的,按照您的步骤,下面是一个可能的解决方案:
```c
#include <stdio.h>
#define MAX_LENGTH 100
int main() {
char str1[MAX_LENGTH], str2[MAX_LENGTH];
char *p1 = str1, *p2 = str2;
printf("请输入一个字符串: ");
scanf("%s", str1);
// 复制字符串
while (*p1 != '\0') {
*p2 = *p1;
p1++;
p2++;
}
*p2 = '\0'; // 加上字符串结束标记
printf("复制后的字符串为: %s\n", str2);
return 0;
}
```
在这个解决方案中,我们定义了两个字符数组 `str1` 和 `str2`,分别用来保存原字符串和复制后的字符串。然后,我们定义了两个指针 `p1` 和 `p2`,让它们分别指向 `str1` 和 `str2` 数组的首地址。
在复制字符串的过程中,我们使用了 `while` 循环,只要 `p1` 指向的当前字符不是字符串结束标记,就将它赋值给 `p2` 指向的字符,然后将 `p1` 和 `p2` 指针都后移一个位置。最后,我们在 `str2` 数组的末尾加上字符串结束标记,以确保输出字符串时不会出现问题。
最后,我们使用 `printf` 函数输出复制后的字符串。需要注意的是,在输出字符串时,我们直接使用了 `str2` 数组的名称,因为数组名本身就是一个指向数组首地址的指针。
阅读全文