gpt4 book ai didi

c - 用另一个字符串的部分覆盖字符串的部分

转载 作者:行者123 更新时间:2023-11-30 17:27:27 25 4
gpt4 key购买 nike

我正在尝试用另一个字符串的一部分覆盖字符串的一部分。

基本上,我想访问字符串的给定索引,从另一个字符串的另一个给定索引写入给定数量的字符。

所以像 memcpy(stringa[indexa], stringb[indexb], length); 这样的函数,只不过这不起作用。

使用 strncpy 也足够了。

根据要求提供更多代码:

void mymemset(char* memloc, char* cmd, int data_blocks[], int len)
{
int i = 0;
while(i < len)
{
//missing part. Where I want the "memcpy" operation to take place
i++;
}
return;
}

memloc 是我们要覆盖的字符串,cmd 是我们要覆盖的字符串,data_blocks 包含有关 中位置的信息>memloc 我们应该编写,len 是我们正在执行的操作数。因此,我想从 cmd 一次覆盖位置 data_blocks[i] 8 个字符。

编辑:我想我只是忘记了 &,很抱歉让您感到困惑,并感谢您的宝贵时间。这似乎有效:

void mymemset(char* memloc, char* cmd, int data_blocks[], int len)
{
int i = 0;
while(i < len)
{
memcpy(&memloc[data_blocks[i]], &cmd[i*8], 8);
i++;
}
return;
}

一次从cmd获取8个字节,将它们存储在memloc中由data_blocks[i]给定的索引处。如评论所述,data_blocks 包含有关可用的 memloc 中不同索引的信息,并且可能会发生字符串 cmd 的分段。

最佳答案

假设stringastringb声明如下

char stringa[] = "Hello" ;
char stringb[] = "World" ;

这应该有效:

memcpy(&stringa[1], &stringb[1], 2) ;

您的示例不应编译,或者如果编译它可能会崩溃或导致未定义的行为:

memcpy(stringa[1], stringb[1], 2) ;

关于c - 用另一个字符串的部分覆盖字符串的部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26379295/

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