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

C言語では、配列から要素を削除するときは、配列要素を移動させることで実装できます。手順は次のとおりです。

  1. まず削除する要素が配列内にある位置を確定する。削除する要素の添字をindexとする。
  2. 削除する要素を起点に、その後ろの要素を次々に1つずつ前へ詰めていく。
  3. 配列の長さを1減らす。

以下にサンプルコードを示します。

#include <stdio.h>

#define MAX_SIZE 100

void deleteElement(int arr[], int *size, int index) {
    if (index < 0 || index >= *size) {
        printf("Invalid index\n");
        return;
    }
    
    for (int i = index; i < *size - 1; i++) {
        arr[i] = arr[i+1];
    }
    
    (*size)--;
}

int main() {
    int arr[MAX_SIZE] = {1, 2, 3, 4, 5};
    int size = 5;
    int index = 2;
    
    deleteElement(arr, &size, index);
    
    printf("Array after deletion: ");
    for (int i = 0; i < size; i++) {
        printf("%d ", arr[i]);
    }
    
    return 0;
}

実行結果

Array after deletion: 1 2 4 5

この例では、deleteElement 関数を定義し、配列内で指定された位置の要素を削除します。main 関数では、最初に配列 arr を定義してから、 deleteElement 関数を呼び出して、配列内のインデックス 2 の要素を削除します。最後に、要素が削除された後の配列を出力します。

bannerAds