gpt4 book ai didi

c - 从C中的数组中删除一个条目

转载 作者:行者123 更新时间:2023-11-30 20:49:34 26 4
gpt4 key购买 nike

我正在寻找一种从 C 数组中删除条目的方法。同时删除结构中的条目。

我对 C 还很陌生,知道该怎么做吗?

更新:

发现一个应该从结构中删除条目的代码:

void removeEntry(student *st, int *nr, char nu[50])
{
int k=0,i,j;
for(i=0;i<*nr;i++)
{
if(strcmp((st+i)->name,nu)==0)
{
k++;
for(j=i;j<(*nr-k);j++)
{
*(st+j)=st[j+1];
}
}
}

*nr=*nr-k;
}

最佳答案

要删除动态分配数组中的条目(将 T 替换为数组中存储的实际类型):

// delete element i in array a of size n
T *delete(T *a, size_t n, size_t i)
{
memmove(&(a[i]), &(a[i+1]), n - i - 1);
return realloc(a, sizeof(T) * (n - 1));
}

如果顺序不重要,则将 memmove 替换为 t[i] = t[n-1];

无法从结构体中删除成员。

关于c - 从C中的数组中删除一个条目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8474824/

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