C言語で配列から数字を削除する方法

C言語では、配列から数値を削除するには、以下の手順に従います。

削除する数字の位置またはインデックスを確認する。

それ以降の要素をすべて1つずつ左にずらす。

配列の長さの更新

以下に例を示すサンプルコードがあります。このコードでは、配列から数字を削除する方法を説明しています。

#include 
void deleteElement(int arr[], int size, int index) {
    // 检查索引是否合法
    if (index < 0 || index >= size) {
        printf("无效的索引\n");
        return;
    }
    
    // 将该位置之后的所有元素向前移动一个位置
    for (int i = index; i < size - 1; i++) {
        arr[i] = arr[i + 1];
    }
    
    // 更新数组的长度
    size--;
}
int main() {
    int arr[] = {1, 2, 3, 4, 5};
    int size = sizeof(arr) / sizeof(arr[0]);
    
    // 删除索引为2的元素
    deleteElement(arr, size, 2);
    
    // 打印删除后的数组
    for (int i = 0; i < size - 1; i++) {
        printf("%d ", arr[i]);
    }
    
    return 0;
}

実行すると `1 2 4 5` が出力されます。これは、インデックス 2 の要素 (数値 3) が正しく削除されたことを示しています。この例では、削除された要素の後の要素を 1 つ前に移動しただけで、要素がメモリから実際に削除されるわけではありません。

bannerAds