5.利用指针做形参实现字符串串接函数strcat的功能,在main中调用其进行测试。
时间: 2024-12-27 07:32:42 浏览: 1
在C语言中,`strcat()` 函数用于连接两个字符串,通常是把源字符串追加到目标字符串后面。如果你想要使用指针作为形参来实现类似 `strcat` 的功能,你可以创建一个自定义的函数,接受两个指向字符数组(即字符串)的指针以及一个指向足够大来存储结果的新字符串的指针。这里是一个简单的示例:
```c
#include <stdio.h>
#include <string.h> // 只需包含这个头文件,因为strncpy会使用到
// 自定义的字符串串接函数
void strcat_ptr(char **dest, const char *src) {
size_t len_dest = strlen(*dest);
if (len_dest == 0) { // 如果dest为空,则直接复制src
strncpy(*dest, src, sizeof(*dest)); // 将src复制到dest
} else {
char temp[len_dest + strlen(src) + 1]; // 新临时缓冲区大小为dest当前长度+src长度+1(防止溢出)
strncpy(temp, *dest, len_dest); // 复制dest到temp前部
strncat(temp, src, strlen(src)); // 追加src到temp后部
*dest = temp; // 更新dest为新拼接的结果
}
}
int main() {
char dest[50] = "Hello, ";
char src[] = "World!";
strcat_ptr(&dest, src); // &dest 是一个指向char类型的指针,指向dest数组首元素
printf("Destination string after concatenation: %s\n", dest);
return 0;
}
```
在这个例子中,`strcat_ptr` 函数接收一个指向指针的指针,这样我们可以在函数内部修改传递给它的字符串。注意,我们在处理时添加了对缓冲区溢出的检查,并使用 `strncpy` 和 `strncat` 来避免内存操作。
阅读全文