Strings

Einige Probleme bei der Benutzung von Strings (2/2)

Ein weiteres Problem ist das Kopieren zweier Strings:

char* txt1 = "Dies ist ein String";
char* txt2;
char* txt3 = "Noch ein String";

txt2 = txt1;       // Nur Pointeradresse wird kopiert. Nur EIN String vorhanden
*txt2 = *txt1;     // Nur erstes Zeichen wird kopiert
for (int i = 0; i < 19; i++)
  *(txt3+i) = *(txt2+i);   // Nicht genügend Speicherplatz in txt3

Glücklicherweise stell C einige Standardfunktionen zur Verfügung, die das Handling mit Strings vereinfachen sollen. Dabei ist zu beachten, daß vor allem die Probleme des nicht alloziierten Speichers durch diese Funktionen im Wesentlichen nicht wegfallen. Sinnvoll ist es eine eigene Stringklasse zu definieren, die alle Speicherprobleme klassenintern behandelt, so daß sich der Programmierer darüber keine Sorgen machen muß. Ansätze für solch eine Klasse werden später behandelt.