Forum: PC-Programmierung teile eines strings ersetzen


von Reinhard L. (leiti7)


Lesenswert?

hallo leute hätt da ne frage .

wie könnte man in c am einfachsten teile eines strings ersetzen?

wenn ma zb. einen string mi "beispiel.doc" hat und das programm daraus 
"beispiel.txt" machen soll.

ich schätze mal man muss den string mit strtok zerteilen, und dann den 
teil hintermpunkt austauschen. aber wie tausche ich den teil aus??

von Random .. (thorstendb) Benutzerseite


Lesenswert?

so was parse ich einach von hinten durch (auf den ersten Punkt), merk 
mir die Stelle, und
- ändere die Endung, wenn die Stringlänge gleich oder kürzer ist, und 
ich den original string nicht mehr brauche
- memcpy oder sprintf in einen anderen String, per &str[i]

von Martin (Gast)


Lesenswert?

char * locpoint;
char start[256];


strcpy(start,"beispiel.doc");

locpoint = strstr(start,".");

strcpy(locpoint,".txt");

von Reinhard L. (leiti7)


Lesenswert?

Danke. Haut super hin!

Mfg. leiti7

von Karl H. (kbuchegg)


Lesenswert?

Reinhard Leitgeb schrieb:
> Danke. Haut super hin!

Das geht hier aber nur, weil der Ersatz gleich lang ist wie das Original 
und auch noch ganz hinten steht.

In den meisten Fällen hat man aber den Luxus nicht.
Dann lautet die Strategie:
Nicht ersetzen, sondern einen neuen String zusammenbauen, der aus dem 
Teil aus dem Original vor der Ersetzstelle, dem zu ersetzenden Teil und 
dem Teil aus dem Original nach der Ersatzstelle besteht.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.