Zeichenketten.


Zeiger auf Zeichenketten.

C kennt keinen "string" Datentyp. Um eine Zeichenkette zu definieren muß man ein char Array oder einen char Zeiger verwenden. Wenn Sie char Arrays noch nicht kennen, empfiehlt es sich, das jetzt nachzuholen.

Zur Wiederholung, ein char Zeiger wird wie folgt definiert :

 
     main()
     {
       char *Text;
     }
     

Alles was das Programm macht ist, Speicherplatz zu reservieren, in dem eine Adresse abgelegt werden kann.
Um Text zu initialisieren schreibt man:

    
     main()
     {
       char *Text = "Thunder";
     }
     

Text enthält jetzt die Adresse des ersten Zeichens in Thunder. Grafisch dargestellt ergibt sich:


      (Address) (Data)
      
           ---- ----    
          | F1 | 00 <------- Text |----|----| (Data) (Adress) | F2 | 00 | |----|----|>         |---->  | 54 (T) | D1 |
	  | F3 | 00 |        |       |--------|----|
	  |----|----|  *Text |       | 68 (h) | D2 |
	  | F4 | D1 | -------        |--------|----|
	   ---------                 | 75 (u) | D3 |
	                             |--------|----|
				     | 6E (n) | D4 |
				     |--------|----|
                                     | 64 (d) | D5 |
                                     |--------|----|
                                     | 65 (e) | D6 |
                                     |--------|----|
                                     | 72 (r) | D7 |
                                     |--------|----|     
                                     | 00     | D8 |
                                      -------------

Beachten sie das 00 am Ende von Thunder. Es ist das  NULL Zeichen und markiert das Ende der Zeichenkette

Will man die Daten ausgeben, auf die der  char Zeiger verweist, könnte man schreiben.

Source

     main()
     {
       char *Text1 = "Thunder";          /* Define and initalize */
       char *Text2;                      /* Define only          */
       
       Text2 = "Bird";                   /* Point to some text   */
       
       printf("%s%s\n", Text1, Text2);
     }
     
Result

      ThunderBird

Das ist alles schön und gut, aber es gibt ein Problem! Thunder und Bird sind Konstanten, sie können nicht verändert werden. Man braucht eine Methode, um  Zeichenketten zu manipulieren.  In C  gibt es die Funktion malloc, die genau das ermöglicht.


Siehe auch:

Schlüsselwort VOID.


Anfang Hauptindex Schlüsselwörter Funktionen

Übers.: G. Junghanns