How to Remove Element from Array based on a Condition in C


How to Remove Element from Array based on a Condition in C ?

Answer

In C, you can iterate through the array and move elements to fill the gaps created by removing elements based on a condition.



✐ Examples

1 Remove Even Numbers

In this example,

  1. We create an array `numbers` with elements including those to be removed based on the condition.
  2. We iterate through the array and shift elements to overwrite even numbers.
  3. We decrement the count of elements to simulate removal of even numbers.

C Program

#include <stdio.h>

int main() {
    int numbers[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
    int length = sizeof(numbers) / sizeof(numbers[0]);
    int i, count = 0;

    for (i = 0; i < length; i++) {
        if (numbers[i] % 2 != 0) {
            numbers[count++] = numbers[i];
        }
    }

    printf("Array after filtering:\n");
    for (i = 0; i < count; i++) {
        printf("%d ", numbers[i]);
    }
    return 0;
}

Output

Array after filtering:
1 3 5 7 9 

2 Remove Strings Containing 'a'

In this example,

  1. We create an array `words` with elements including those to be removed based on the condition.
  2. We iterate through the array and move elements to overwrite strings containing 'a'.
  3. We decrement the count of elements to simulate removal of strings containing 'a'.

C Program

#include <stdio.h>
#include <string.h>

int main() {
    char words[][10] = {"apple", "banana", "grape", "orange", "melon"};
    int length = sizeof(words) / sizeof(words[0]);
    int i, count = 0;

    for (i = 0; i < length; i++) {
        if (!strchr(words[i], 'a')) {
            strcpy(words[count++], words[i]);
        }
    }

    printf("Array after filtering:\n");
    for (i = 0; i < count; i++) {
        printf("%s ", words[i]);
    }
    return 0;
}

Output

Array after filtering:
melon 

Summary

In this tutorial, we learned How to Remove Element from Array based on a Condition in C language with well detailed examples.




More C Arrays Tutorials

  1. How to Declare an Array in C ?
  2. How to Initialize an Array in C ?
  3. How to Access Array Elements in C ?
  4. How to Access Array Elements using Index in C ?
  5. How to get First Element in Array in C ?
  6. How to get Last Element in Array in C ?
  7. How to check if an Array is Empty in C ?
  8. How to check if an Array is Not Empty in C ?
  9. How to get Sub Array in C ?
  10. How to Get Array Length in C ?
  11. How to Iterate Over an Array in C ?
  12. How to Iterate Over an Array in Reverse Order in C ?
  13. How to get the Index of Specified Element in an Array in C ?
  14. How to check if Specified Element is present in the Array in C ?
  15. How to count the Number of Occurrences of Specified Element in the Array in C ?
  16. How to Sort an Array in C ?
  17. How to Sort an Array in Ascending Order in C ?
  18. How to Sort an Array in Descending Order in C ?
  19. How to create a Two Dimensional Array in C ?
  20. How to Iterate over a Two Dimensional Array in C ?
  21. How to create a Three Dimensional Array in C ?
  22. How to Copy an Array in C ?
  23. How to Split an Array in C ?
  24. How to Join Arrays in C ?
  25. How to check if Two Arrays are Equal in C ?
  26. How to check if Two Arrays have Same Elements (Regardless of Order) in C ?
  27. How to Convert an Array of Integers to an Array of Strings in C ?
  28. How to Convert an Array of Strings to an Array of Integers in C ?
  29. How to Reverse an Array in C ?
  30. How to Shuffle an Array in C ?
  31. How to Rotate Elements in an Array in C ?
  32. How to Filter Elements of an Array based on a Condition in C ?
  33. How to Declare an Integer Array in C ?
  34. How to Declare a Float Array in C ?
  35. How to Declare a String Array in C ?
  36. How to Remove Duplicates in an Array in C ?
  37. How to Remove Specific Element from an Array in C ?
  38. How to Remove Element from Array based on a Condition in C ?
  39. How to Sort a String Array in Dictionary Order in C ?
  40. How to Concatenate Strings in Array in C ?