C语言如何从数组中删除元素
时间: 2024-03-25 07:36:44 浏览: 266
在 C 语言中,数组的大小是固定不变的,无法直接删除元素。如果需要删除元素,可以采用以下两种方式:
1. 将后面的元素向前移动,覆盖需要删除的元素,这样就相当于删除了该元素。示例代码如下:
```c
int arr[10] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
int index = 5; // 要删除的元素下标
int len = 10; // 数组长度
for (int i = index; i < len - 1; i++) {
arr[i] = arr[i + 1]; // 将后面的元素向前移动
}
len--; // 数组长度-1,相当于删除了一个元素
```
2. 创建一个新数组,将需要保留的元素复制到新数组中,覆盖原数组。示例代码如下:
```c
int arr[10] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
int index = 5; // 要删除的元素下标
int len = 10; // 数组长度
int new_arr[9]; // 创建新数组,长度为原数组长度减1
for (int i = 0, j = 0; i < len; i++) {
if (i != index) {
new_arr[j] = arr[i]; // 将需要保留的元素复制到新数组中
j++;
}
}
memcpy(arr, new_arr, sizeof(new_arr)); // 将新数组复制到原数组中
len--; // 数组长度-1,相当于删除了一个元素
```
阅读全文