005
06.01.2006, 07:22 Uhr
Tommix
|
Zitat von ~tillle: |
...allerdings mit einem, sich immer wieder wiederholendem Wort, welches auch angegeben werden kann....
|
'Morgen, ein char ist ein einzelner Buchstabe. Ein C-String ist ein Array aus chars, mit einem zusätzlichen char '\0' als Ende-Markierung. Funktionen, die mit Strings arbeiten, bekommen als Parameter üblicherweise einen Zeiger auf das erste Zeichen, also
C++: |
char text[] = "bla"; int len = strlen(&(text[0]));
|
Alternativ kann man auch schreiben
Das ist intuitiv eher erfassbar. Der Compiler macht aber genau das erste Konstrukt daraus. Es wird nicht, wie bei einer "normalen" Variable, eine Kopie der eigentlichen Daten übergeben, sonder ein Zeiger auf das erste Element. Wenn es dynamisch sein soll sähe es so aus:
C++: |
char text[] = "bla"; char* kopie = new char[strlen(text)+1]; // +1 wegen dem '\0' am Ende strcpy(kopie, text); //... delete[] kopie;
|
Einen derartigen Mischmasch aus C und C++ sollte man sich aber nicht erst angewöhnen.
Gruß, Tommix |