C 语言从数组中删除元素

2025年03月17日 | 阅读 9 分钟

在本主题中,我们将学习如何在 C 编程语言中从数组中删除或移除特定元素。数组是存储在连续内存块中的相同数据类型元素或项的集合。在 C 语言编程中,数组是一种派生数据类型,用于存储像 int、char、float 等基本数据类型的值。

要从数组中删除特定元素,用户必须定义应从哪个位置移除数组的元素。元素的删除不会影响数组的大小。此外,我们还应检查删除操作在数组中是否可行。

Remove an element from an array in C

例如,假设一个数组包含七个元素,arr[] = {10, 25, 14, 8, 12, 15, 5};用户想要删除元素 8。那么,首先,用户必须定义元素 8 的位置,即第 4 位,然后检查删除是否可行。特定元素的位置不应超过数组的总元素数。在这里,我们的数组中有 7 个元素,而用户想要删除第 8 个位置的元素,这是不可能的。

从数组中删除元素的步骤

以下是在 C 语言编程中从数组中删除特定元素的步骤。

第 1 步: 使用 num 输入数组 arr[] 的大小,然后声明 pos 变量来定义位置,i 表示计数器值。

第 2 步: 使用循环向数组中插入元素,直到满足 (i < num) 条件。

第 3 步: 现在,输入用户或程序员想要从数组中删除的特定元素的位置。

第 4 步: 将元素的位置 (pos) 与总元素数 (num+1) 进行比较。如果 pos 大于 num+1,则无法删除元素,并跳转到第 7 步。

第 5 步: 否则,移除特定元素,并将数组中剩余元素的位置向左移动。

第 6 步: 显示从数组中删除或移除元素后的结果数组。

第 7 步: 终止或退出程序。

示例 1:使用 for 循环从数组中删除元素的程序

让我们创建一个在 C 编程语言中使用 for 循环从数组中删除元素的程序。

输出

Enter the number of elements in an array:
8

Enter 8 elements in array:
arr[0] = 3
arr[1] = 6
arr[2] = 2
arr[3] = 15
arr[4] = 10
arr[5] = 5
arr[6] = 8
arr[7] = 12
Define the position of the array element where you want to delete:
5

The resultant array is:
arr[0] = 3
arr[1] = 6
arr[2] = 2
arr[3] = 15
arr[4] = 5
arr[5] = 8
arr[6] = 12

在上面的程序中,我们从用户那里为数组 arr[] 输入了 8 个元素。之后,用户输入的特定元素位置是 5。然后,我们通过 If 语句 (if (pos > num + 1)) 检查定义的位置;这里,5 小于 (num+1)。所以条件为假,它执行 else 块,使用 for 循环移除第 5 个位置的元素 10,然后打印结果数组。

示例 2:使用 for 循环从数组中删除特定字符的程序

让我们考虑一个例子,在 C 编程语言中使用 for 循环从数组中删除特定位置的已定义字符。

输出

Enter the number of elements in an array:
8
Enter 8 elements in array:
arr[0] = a
arr[1] = b
arr[2] = f
arr[3] = h
arr[4] = e
arr[5] = k
arr[6] = w
arr[7] = p
Define the position of the array element where you want to delete:
4

The resultant array is:
arr[0] = a
arr[1] = b
arr[2] = f
arr[3] = e
arr[4] = k
arr[5] = w
arr[6] = p

示例 3:使用用户定义函数从数组中删除特定元素的程序

让我们考虑一个例子,演示在 C 编程语言中使用用户定义函数删除特定元素。

输出

Enter the size of the array: 8
Enter the 8 elements in an array:
arr[0] = 2
arr[1] = 4
arr[2] = 6
arr[3] = 8
arr[4] = 10
arr[5] = 3
arr[6] = 9
arr[7] = 12
Enter the position of the element you want to delete from an array: 4
Array before deletion:

arr[0] = 2
arr[1] = 4
arr[2] = 6
arr[3] = 8
arr[4] = 10
arr[5] = 3
arr[6] = 9
arr[7] = 12
Array after deletion:

arr[0] = 2
arr[1] = 4
arr[2] = 6
arr[3] = 10
arr[4] = 3
arr[5] = 9
arr[6] = 12

示例 4:使用指针从数组中删除特定元素的程序

让我们考虑一个在 C 编程语言中使用指针和用户定义函数从数组中删除特定元素的例子。

输出

Define the size of the array: 8
Enter 8 elements in an array:
arr[0] = 5
arr[1] = 10
arr[2] = 15
arr[3] = 20
arr[4] = 25
arr[5] = 30
arr[6] = 35
arr[7] = 40
Enter the position of the element to be deleted from an array: 4
The resultant array after deletion of the array elements are:
arr[0] = 5
arr[1] = 10
arr[2] = 15
arr[3] = 25
arr[4] = 30
arr[5] = 35
arr[6] = 40