【发布时间】:2020-05-29 09:54:47
【问题描述】:
阅读了很多不同的答案,但找不到解决此问题的方法,所以我在这里提出了一个“操作方法”问题。
所以我试图从我创建的数组中“删除”一个元素。据我了解,没有办法简单地删除一个元素,而是需要将正在进行的元素移动到数组的左侧,从而用已经存在的元素覆盖你不想要的元素。
试图在我的 removeToDoItem 函数中完全做到这一点,但我得到的错误是:assigment to expression with array type.一直在关注本教程https://codeforwin.org/2015/07/c-program-to-delete-element-from-array.html,但似乎我是缺少一些东西。
#include <stdio.h>
#define Listsize 10
#define Stringsize 30
#include <string.h>
void printToDolist(char toDolist[][Stringsize], int placering)
{
for(int i= 0; i<placering; i++)
printf("%d - %s\n", i+1, toDolist[i]);
}
int addToDoItem(char toDolist[][Stringsize], int placering)
{
int i;
for( i=1; i<=3; i++)
{
printf(" Add a note: ");
fgets(toDolist[i], 30 , stdin);
}
return placering+i;
}
int removeToDoItem(char toDolist[][Stringsize], int placering)
{
int position,i;
printf(" Which element would you like to remove?: ");
scanf("%d", &position);
for(i=position-1; i< placering-1; i++)
{
toDolist[i] = toDolist[i+1];
}
return placering--;
}
int main()
{
char toDolist[Listsize][Stringsize] = {[0]= "Buy candy \n"};
int placering = 0;
placering = addToDoItem(toDolist, placering);
printToDolist(toDolist, placering);
removeToDoItem(toDolist, placering);
return 0;
}
【问题讨论】:
-
你的错误信息是指哪一行?
-
@ScottHunter toDolist[i] = toDolist[i+1],在删除函数中
-
@pmg 谢谢伙计,那行得通。完全忘记了在这种情况下可以使用 strcpy xD。干杯 m8!
标签: c arrays string replace char