Element aus einem Array mit C löschen

CCBeginner
Jetzt üben

💡 Dieser Artikel wurde von AI-Assistenten übersetzt. Um die englische Version anzuzeigen, können Sie hier klicken

Einführung

Ein Array ist eine Sammlung ähnlicher Datenelemente, die an aufeinanderfolgenden Speicherorten gespeichert sind und aus Elementen besteht. Ein Element kann über die Indizierung der Position des entsprechenden Speicherorts zugegriffen werden. Manchmal ist es erforderlich, ein beliebiges Arrayelement aufgrund seiner Position oder seines Werts zu löschen. In diesem Lab werden wir lernen, wie man ein Element aus dem Array aufgrund seiner Position und seines Werts entfernt.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL c(("C")) -.-> c/ControlFlowGroup(["Control Flow"]) c(("C")) -.-> c/CompoundTypesGroup(["Compound Types"]) c(("C")) -.-> c/FunctionsGroup(["Functions"]) c(("C")) -.-> c/FileHandlingGroup(["File Handling"]) c(("C")) -.-> c/UserInteractionGroup(["User Interaction"]) c/ControlFlowGroup -.-> c/if_else("If...Else") c/ControlFlowGroup -.-> c/for_loop("For Loop") c/CompoundTypesGroup -.-> c/arrays("Arrays") c/FunctionsGroup -.-> c/function_declaration("Function Declaration") c/FileHandlingGroup -.-> c/create_files("Create Files") c/UserInteractionGroup -.-> c/output("Output") subgraph Lab Skills c/if_else -.-> lab-123230{{"Element aus einem Array mit C löschen"}} c/for_loop -.-> lab-123230{{"Element aus einem Array mit C löschen"}} c/arrays -.-> lab-123230{{"Element aus einem Array mit C löschen"}} c/function_declaration -.-> lab-123230{{"Element aus einem Array mit C löschen"}} c/create_files -.-> lab-123230{{"Element aus einem Array mit C löschen"}} c/output -.-> lab-123230{{"Element aus einem Array mit C löschen"}} end

Erstellen eines C-Projekts

Zunächst müssen wir ein C-Projekt im Code-Editor erstellen. Erstellen Sie eine neue Datei "main.c" im Verzeichnis ~/project/ und schreiben Sie den folgenden Code:

#include <stdio.h>

int main()
{
  return 0;
}

Entfernen eines Elements aus einem Array basierend auf der Position

In diesem Schritt werden wir ein Programm in der C-Sprache schreiben, das ein Array von ganzen Zahlen, die Größe des Arrays und die Position eines Elements zur Entfernung annimmt. Anschließend werden wir das Element entfernen und das aktualisierte Array ausgeben.

#include <stdio.h>

int main()
{
    int arr[100], position, c, n;

    printf("Enter the number of elements in array: ");
    scanf("%d", &n);

    printf("Enter %d elements:\n", n);
    for(c = 0; c < n; c++)
        scanf("%d", &arr[c]);

    printf("Enter the location of the element to delete: ");
    scanf("%d", &position);

    if (position >= n + 1)
        printf("Deletion not possible.\n");
    else
        for (c = position - 1; c < n - 1; c++)
            arr[c] = arr[c+1];

    printf("The updated array is: ");
    for(c = 0; c < n-1; c++)
        printf("%d ", arr[c]);

    return 0;
}

Code-Erklärung:

  • Wir erstellen ein ganzzahliges Array arr[100], das maximal 100 Elemente speichern kann.
  • Wir nehmen die ganze Zahl n vom Benutzer entgegen, die die Anzahl der Elemente im Array darstellt.
  • Die for-Schleife wird verwendet, um die Eingabe vom Benutzer mithilfe der scanf-Funktion in das Array arr zu übernehmen.
  • Wir nehmen die Position des Elements zur Entfernung als Eingabe vom Benutzer entgegen.
  • Wir überprüfen, ob die vom Benutzer eingegebene Position gültig ist; sie sollte zwischen 1 und n liegen.
  • Wenn die Position gültig ist, legen wir das Element links von der Position an den Ort des gelöschten Elements, was durch die Implementierung einer Schleife zum Verschieben des Elements an seine linken Stellen erreicht wird.
  • Schließlich geben wir das aktualisierte Array mithilfe der printf-Anweisung aus.

Entfernen eines Elements aus einem Array basierend auf dem Wert

In diesem Schritt werden wir ein Programm in C schreiben, um ein Arrayelement basierend auf dem Wert zu löschen, den der Benutzer eingegeben hat.

#include<stdio.h>

int main()
{
    int arr[10], element, c, n, pos, found=0;

    printf("Enter the number of elements in array: ");
    scanf("%d", &n);

    printf("Enter %d elements:\n", n);
    for (c = 0; c < n; c++)
        scanf("%d", &arr[c]);

    printf("Enter the element to delete: ");
    scanf("%d", &element);

    for (c = 0; c < n; c++)
    {
        if (arr[c] == element)
        {
            found = 1;
            pos = c;
            break;
        }
    }

    if (found == 1)
    {
        for (c = pos; c < n - 1; c++)
            arr[c] = arr[c+1];

        printf("The updated array is: ");
        for (c = 0; c < n - 1; c++)
            printf("%d ", arr[c]);
    }

    else
        printf("Element not found in array.");

    return 0;
}

Code-Erklärung:

  • Wir erstellen ein ganzzahliges Array arr[10].
  • Wir speichern die Anzahl der Elemente, die von der Benutzereingabe-Variable n hinzugefügt werden sollen.
  • Wir verwenden eine for-Schleife, um n ganze Zahlen nacheinander mithilfe der scanf-Funktion in das ganzzahlige Array arr zu übernehmen.
  • Wir nehmen die Eingabe des Elements entgegen, das wir löschen möchten, vom Benutzer.
  • Wir durchlaufen das Array mit einer for-Schleife von 0 bis n-1 und überprüfen dann mithilfe einer if-Anweisung, ob das Element, das der Benutzer eingegeben hat, gleich einem der Elemente des Arrays ist oder nicht.
  • Wenn es gleich ist, deklarieren wir eine Variable pos, in der wir den Index dieses Elements speichern.
  • Wir verwenden eine weitere for-Schleife, um das Element zu löschen und die verbleibenden Elemente des Arrays zu verschieben.
  • Schließlich geben wir das aktualisierte Array mithilfe der printf-Anweisung aus.

Zusammenfassung

In diesem Lab haben wir gelernt, wie man in der C-Programmierung ein Element aus einem Array anhand seiner Position oder seines Werts löscht. Das Programm zum Löschen eines Elements aus einem Array nimmt das Array, seine Größe und die Position/Wert des zu löschenden Elements als Eingaben entgegen. Eine for-Schleife wird verwendet, um das Array zu traversieren, dann wird die Position oder der Wert des Ziel-elements gefunden und anschließend wird eine Schleife verwendet, um das Element zu löschen. Dies wird erreicht, indem das Element, das sich rechts vom zu löschenden Element befindet, bis zum Ende des Arrays nach links kopiert wird. Nach dem Löschen wird die Arraygröße um eins reduziert.