gpt4 book ai didi

c - 如何替换 C 中数组中特定但不断变化的一系列字符?

转载 作者:太空宇宙 更新时间:2023-11-03 23:20:18 27 4
gpt4 key购买 nike

我正在研究 2 个不同的程序,但两者都遇到相同的问题。我有一个 char 数组(不包含有意义的文本),用于在屏幕上绘制内容。第一个是显示进度的赛道,另一个是可以修改的区域 map 。
我想要做的是覆盖数组的部分,而不是整个数组,而不更改数组的大小。例如,如果 array1 看起来像 |.........| 我想在位置 3 添加一棵倒下的树,在位置 10 添加一 block 石头它将更改为 |..-->>>..@|。我在标题中“特定”的意思是,要替换的字符数量由我给出或在执行过程中确定,而不是调用一个自动知道何时停止的函数。
我想用 for 循环来做,比如:

char tree[5] = "-->>>";
char map[12] = "|..........|";
int offset = 3; //position from which to start replacing characters
object_size = sizeof(tree) / sizeof(char); //to get the length of the object to be added
for (int i = 0; i < object_size; i++) {
map[offset + i] = tree[i];
}

有更简洁的方法吗?我敢肯定肯定已经有一个函数可以做到这一点,但我发现的大部分内容都是用其他语言写的。这个想法是然后能够使用二维数组来存储 map 并修改更大的区域。

最佳答案

如果我没理解错的话,你不想复制终止空值。要使用的标准库函数是 void *memcpy(void *dest, void *src, size_t size),它从 src 中精确复制 size 个字节到目的地

但是必须确保在目标位置有足够的空间来接受大小字节

关于c - 如何替换 C 中数组中特定但不断变化的一系列字符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41490829/

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