gpt4 book ai didi

c - 在 C 中拆分数组

转载 作者:太空宇宙 更新时间:2023-11-04 08:55:00 27 4
gpt4 key购买 nike

假设我有一个数组,我想从某些索引范围中删除元素。

如果我提前知道数组的大小、数组中每个元素的大小以及我要删除的索引范围,是否有任何方法可以避免复制新数组?

最佳答案

如果您不想使用新数组进行复制,您可以考虑在同一个数组本身中执行此操作,这就是我所拥有的:

#include<stdio.h>
#include<string.h>
int main()
{
char str[] = "hello world";
int i , strt , end , j;

setbuf ( stdout , NULL );

printf ("enter the start and end points of the range of the array to remove:\n");
scanf ("%d%d", &strt , &end);
int len = strlen (str);
for ( i = end; i >= strt ;i--)
{
str[i-1] = str[i];
for ( j = i+1; j <= len ; j++)
{
str[j-1] = str[j];
}
len--;
}

printf ("%s" , str);
return 0;
}

虽然此代码适用于字符数组,但您也可以将算法用于整数数组,稍作修改(作为练习) .

注意:- 虽然这种方法不是很有效,因为您可以看到复杂性呈指数增长,所以我的建议是只使用复制新数组方法

关于c - 在 C 中拆分数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17645417/

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