gpt4 book ai didi

将 C 中的字符串文字复制到字符数组中

转载 作者:太空狗 更新时间:2023-10-29 15:17:45 26 4
gpt4 key购买 nike

我有一个字符串文字:

char *tmp = "xxxx";

我想将字符串文字复制到一个数组中。

例如:

  • 如何将 tmp 复制到 char array[50] 中?

  • 以及如何将一个字符串文字复制到另一个?

最佳答案

使用strcpy()strncpy()strlcpy()memcpy(),根据您的具体需求。

具有以下变量:

const char *tmp = "xxxx";
char buffer[50];

您通常需要确保您的字符串在复制后将以 null 终止:

memset(buffer, 0, sizeof buffer);
strncpy(buffer, tmp, sizeof buffer - 1);

另一种方法:

strncpy(buffer, tmp, sizeof buffer);
buffer[sizeof buffer - 1] = '\0';

一些系统还提供了正确处理 NUL 字节的 strlcpy():

strlcpy(buffer, tmp, sizeof buffer);

您可以天真地自己实现 strlcpy(),如下所示:

size_t strlcpy(char *dest, const char *src, size_t n)
{
size_t len = strlen(src);

if (len < n)
memcpy(dest, src, len + 1);
else {
memcpy(dest, src, n - 1);
dest[n - 1] = '\0';
}

return len;
}

以上代码也作为memcpy()的例子。

最后,当您已经知道字符串适合时:

strcpy(buffer, tmp);

关于将 C 中的字符串文字复制到字符数组中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25838628/

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