通过指针来实现两个字符数组的连接 不能用库函数
时间: 2023-12-24 22:03:37 浏览: 26
如果不使用库函数,可以通过指针来实现两个字符数组的连接,具体实现方式如下:
```c
#include <stdio.h>
int main() {
char str1[20] = "Hello";
char str2[20] = "World";
char *p = str1;
// 将指针移动到str1的末尾
while (*p != '\0') {
p++;
}
// 将str2的内容复制到str1的末尾
while (*str2 != '\0') {
*p = *str2;
p++;
str2++;
}
*p = '\0'; // 添加字符串结束符
printf("连接后的字符串为:%s\n", str1);
return 0;
}
```
这个程序中,我们定义了两个字符数组 `str1` 和 `str2`,并初始化了一些字符串。然后我们定义了一个指针 `p`,指向 `str1` 的开头。接着我们使用一个 `while` 循环,将指针 `p` 移动到 `str1` 的末尾。具体实现是通过不断地对指针 `p` 进行自增,直到遇到字符串结束符 `\0` 为止。然后我们再使用一个 `while` 循环,将 `str2` 的内容复制到 `str1` 的末尾。具体实现是通过不断地对指针 `p` 和 `str2` 进行自增,直到遇到字符串结束符 `\0` 为止。最后我们再添加一个字符串结束符,输出连接后的字符串即可。
需要注意的是,这个程序也没有考虑 `str1` 的长度是否足够容纳 `str2` 的内容,仍然存在内存安全问题。在实际使用时,还需要加上对 `str1` 长度的判断。