Eingabezeichenfolge: "I am unwell" "We need to go to the doctor" "How long will it take?"
.
Ausgabezeichenfolge: I am unwell We need to go to the doctor How long will it take?
Die Zeichenfolge muss von allen Vorkommen des char "
bereinigt werden. Ich kann mir folgendes vorstellen:
"
zu finden.
Wiederholen Sie die Schritte 1 und 2, bis strchr () einen NULL-Zeiger zurückgibt.
Ich halte das für eine sehr ineffiziente Art, dieses Problem anzugehen. Ich muss wissen, ob es andere Methoden gibt, dies zu erreichen? Pseudocode oder tatsächlicher Code werden beide geschätzt.
Sie können dies erreichen, indem Sie jedes Zeichen der Zeichenfolge einmal aufrufen. Sie kopieren die Zeichenfolge im Grunde über sich selbst und überspringen die "Zeichen:
Pseudocode:
code:
%Vor%update : Fehler im Code behoben
Anstatt die Zeichen "vor Ort" zu verschieben, um das gelöschte Zeichen zu überschreiben, erstellen Sie eine neue Zeichenfolge.
Dies minimiert die Anzahl der kopierten Zeichen durch einmaliges Kopieren jedes gültigen Zeichens. Bei der ursprünglichen Methode werden Zeichen nahe dem Ende der Zeichenfolge n Male kopiert, wobei n die Anzahl ungültiger Zeichen davor ist.
Wenn Ihre Zeichenfolge nicht sehr groß ist, wäre die offensichtliche Antwort, eine separate Zeichenfolge zu haben. Eine einzelne Schleife, bis Sie \ 0 (Ende der Zeichenfolge) erhalten Haben Sie eine Schleife (gibt Ihnen O (n)) und einen Vergleich, um zu überprüfen, ob der aktuelle Ort der Zeichenfolge das betreffende Zeichen ist (wieder O (n))
Insgesamt:
%Vor%Beachten Sie, dass diese Methode nur funktioniert, wenn die Zeichenfolgen klein sind. Wir müssen bessere Methoden wählen, wenn die Größe der Saite zunimmt.
Hoffe, das hilft.