Löschen Sie jedes Vorkommen eines vom Benutzer erfragten Buchstabens im Array (also z. B. bei Eingabe von 'a' alle 'a' entfernen)?

...komplette Frage anzeigen

3 Antworten

Bei so was würde ich zwei Zeiger verwenden - einen auf den aktuell zu überprüfenden Buchstaben und einen auf die aktuelle Einfügestelle.

Muster

int ii(0); int jj(0);
do {
if (array[ii] != zeichenzumloeschen)
{
    array[jj] = array[ii];
    ii++;
}
ii++;
}
while (0 != array[jj]);

Lege ein zweites Array an und wenn du einen Buchstaben entfernen willst, kopierst du das erste Array Zeichen für Zeichen in das zweite Array. Dann, wenn du auf den Buchstaben triffst, kopierst du ihn aber nicht sondern machst mit dem nächsten weiter.

Im zweiten Array steht dann dein erstes Array ohne den Buchstaben und du hast "keine" Bibliotheksfunktionen verwendet.

das ist die Frage. Wie stelle ich das am besten an?

0
@FlascheSocke

Beispiel C mit einigen unsortieren Elementen und nein, es ist nicht drin, wie du das array1 füllst:

#define arraylength 100
int index1=0;
int index2 = 0;
char entfernbarerBuchstabe;
char array1[arraylength], array2[arraylength];
for(; index1 < arraylength; index1++)
{
if(array1[index1] != entfernbarerBuchstabe)
array2[index2++] = array1[index1];
}

1

Was möchtest Du wissen?