Einzelnen Beitrag anzeigen

PascalProgram

Registriert seit: 5. Jan 2023
5 Beiträge
 
#6

AW: String Manipulation

  Alt 5. Jan 2023, 12:06
Wenn man mit Strings so arbeitet, wie man es in Delphi normalerweise macht, dann ist ein +1 oder -1 unsinnig. Wo das zum Einsatz kommen kann, ist bei der PChar-Variante, bei der ein String (vereinfacht gesagt) als Zeiger auf einen Punkt im Speicher verwaltet wird. Diesen Zeiger kann man erhöhen oder verringern - jedoch sollte man hier nicht mit "+1" arbeiten, um das nächste Zeichen zu bekommen, sondern mit SizeOf(Char) - weil ein Zeichen in der Regel zwei Bytes groß ist.
Aber diese Form der Stringverarbeitung braucht man bei Delphi normalerweise nicht.

Zu deinem Code: Der funktioniert vorne und hinten nicht. Deine While-Schleife ist im Zweifel auch eine Endlosschleife. Ich vermute, dass du hier "if" meinst. Falls du die Anzahl der Zeichen in dem String zählen willst, die keine Leerzeichen sind, dann würde ich das so machen:

Delphi-Quellcode:
Anzahl := 0;
For i := 1 to length(s) do begin
  if s[i] <> ' then
    Inc(Anzahl);
end;
Edit: Kann es sein, dass du C-Code vor dir hast, den du nach Delphi umschreiben willst? Das sieht ein wenig danach aus ...
Ich wollte in einem Satz die Länge der Wörter durchgehen und wenn ein Wort z.B länger als 5 Zeichen ist dieses Wort in der String Variable S löschen.

Ich habe es geschafft ein Programm zu schreiben, das alle Buchstaben zählt und ein Programm, welches alle Wörter zählt. Aber ich weiß nicht wie ich die Schleife gestalten soll, damit nach jedem Wort kontrolliert wird, ob das Wort im Satz >=5 ist und das Wort gelöscht werden soll, wenn es länger als 5 Zeichen ist. Das war mein Ziel mit der While Schleife, den Ablauf so zu gestalten, dass nach einem Leerzeichen, kontrolliert wird ob Wort >=5.
  Mit Zitat antworten Zitat