Einzelnen Beitrag anzeigen

Taralos

Registriert seit: 28. Mär 2003
18 Beiträge
 
#1

Teile eines Strings ersetzen

  Alt 26. Mai 2003, 18:06
Hallo, habe folgendes Problem, dass ich einfach nicht lösen kann:

Ich habe einen String (eine mathematische Funktion) bei der jedes x in (x+0) umgewandelt werden soll. Dazu habe ich folgenden Quelltext geschrieben:
Code:
Stringlaenge := length(Zeichenkette);
r := 1;
repeat
   if Zeichenkette[r] = 'x'
    then
     begin
       delete (Zeichenkette,r,1);
       insert ('(x+0)',Zeichenkette,r);
       r := r +2;
     end
    else r := r+1;
until r = Stringlaenge;
Ich stelle also die Zeichenanzahl des Wortes fest, und suche jeden Char ab ob es ein X ist und will dies gegebenenfalls in (x+0) umwandeln. Nach der Umwandlung soll r um 2 erhöht werden weil er ja sonst immer wieder ein x finden würden. Ansonsten wird x um 1 erhöht damit er den Rest durchsucht.
Jetzt tritt folgendes Problem auf:
Bei 3*x^2 funktioniert alles wunderprächtig. Das wird zu 3*(x+0)^2.

Steht x jedoch am Anfang, also z.b. x oder x^2 wird es nicht umwandelt. Dort passiert gar nichts. Das selbe passiert wenn x am Ende steht, also z.b. 3^x.
Was mache ich falsch, dass der Anfang und das Ende nicht überprüft werden?

Ich hoffe ihr könnt mir helfen.

Edit: Habe gerade festgestellt, dass es funktioniert wenn x am Anfang steht. Es funktioniert nur nicht wenn X am Ende steht. Vielleicht stimmt etwas mit meiner Abbruchbedingung nicht?

Thx!
  Mit Zitat antworten Zitat