Bisher haben wir Text, der z.B. wörtlich auf dem Bildschirm erscheinen sollte einfach in Anführungszeichen angegeben, ohne uns um den Typ dieses Objekts Gedanken zu machen. Diese Zeichenketten sind in C nichts weiter als Vektoren vom Typ char. Das letzte Zeichen in einem solchen Vektor ist allerdings ein char mit dem Wert 0, sodaß entsprechende Funktionen das Ende erkennen können. So
besteht der Vektor "Hallo"
aus den Zeichen
'H','a','l','l','o','\0'
, also aus 6 Zeichen.
Die folgende Funktion kopiert einen solchen Zeichenvektor in einen anderen:
void string_copy(char quelle[], char ziel[]) { int index = 0; char c; while(ziel[index]=quelle[index]) index++; }
Beachte die Zuweisung in der while-Bedingung!
Diese Funktion ist nicht ungefährlich, da sie nicht testet (nicht testen kann), ob der Zielvektor überahaupt größ genug ist. Ein Aufruf wie der folgende
char resultat[10]; ... ... string_copy("Hallo Welt",resultat);
kann dabei durchaus zu mittleren, und sehr schwer zu lokalisierenden Katastrophen führen!