gpt4 book ai didi

c - 如何创建 strcat 的副本?

转载 作者:太空宇宙 更新时间:2023-11-04 06:18:46 24 4
gpt4 key购买 nike

我必须在 C 中创建标准库的某些元素的副本,并且我必须创建 strcat 的副本。所以我必须在 C 中创建一个连接两个字符串的函数。我知道 C 中的数组不能更改分配的大小。我唯一可以使用的功能是复制 strlen、strstr 和 write() ... 我的代码如下所示:

char    *my_strcat(char *dest, char *src)
{
int dest_size;
int src_size;
int current_pos;
int free_space;
int pos_in_src;

src_size = my_strlen(src);
dest_size = my_strlen(dest);
while (dest[current_pos] != '\0')
current_pos = current_pos + 1;
free_space = dest_size - current_pos;
if (free_space < src_size)
return (0);
while (src[pos_in_src] != '\0')
{
dest[current_pos] = src[pos_in_src];
pos_in_src = pos_in_src + 1;
current_pos = current_pos + 1;
}
return (dest);
}

但我不知道如何在 main 中声明我的 dest 和 src。我不知道如何创建一个大数组,将其声明为像 dest = "Hello\0"这样的字符串,但该数组仍必须包含超过 6 个字符。

你能帮帮我吗?

最佳答案

char dest[19] = "epite";
char *src = "chor42spotted";

my_strcat(dest, src);

另外,阅读 man for strcat(3)

the dest string must have enough space for the result.

https://linux.die.net/man/3/strcat

所以你的函数行为不正确,你不需要检查你在 dest 中是否有足够的可用空间

关于c - 如何创建 strcat 的副本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39974072/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com