Zeichen und Strings

Zeichen und Strings

Nun wenden wir uns den Zeichen und Strings zu. Strings sind nichts weiter als eine Aneinanderreihung von Zeichen. Jeder Satz, jedes Wort ist ein String.

Strings und Stringvariablen besitzen den Datentyp char.

Diese Aussage stimmt nur zur Hälfte. Es gibt in C keinen Datentyp für eine Stringvariable. Da der Datentyp char nur ein Zeichen aufnehmen kann, müssen wir ein Array bilden.

Ich habe ein kleines Beispielprogramm geschrieben, welches mit Hilfe der Kommentare im Programm selbst erklärend sein soll.
Falls mir das nicht gelungen ist, fragt einfach nach.


- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
#include <stdio.h>

/* Nun erweitern wir das Programm um die Stringfunktionen. */
#include <string.h>

void main()
{

/* So wird ein String unbekannter Größe initialisiert und ausgegeben.*/

char text[] = "Dies ist Test 1";
printf (text);

/* Diese Zeilen habe ich eingeschoben damit bei der Ausgabe alles schön untereinander steht.*/
printf("\n");

/* Jetzt wird eine Variable text2 hinzugefügt. Diese hat einen festen Wert von 15 Zeichen + Stopzeichen und wird später initialisiert */

char text2[16];

/* Mit der Funktion strcpy wird die Variable text2 gefüllt.*/

strcpy(text2, "Dies ist Text 2");
printf(text2);
printf("\n");

/* Nun wird ein einzelnes Zeichen in die Variable ch geschrieben. Diese Überschreibt jetzt das 14 Zeichen in der Variable text2 und gibt die Änderungen in einer neuen Zeile aus.*/

char ch = '3';
text2[14]=ch;
printf(text2);
printf("\n");

/* Nun passiert eigentlich das selbe wie eben ein einzelnes Zeichen wird in die Variable ch2 geschrieben. Diese Überschreibt jetzt das 14 Zeichen in der Variable text2 und gibt die Änderungen in einer neuen Zeile aus. Der große Unterschied ist das wir die scanf Funktion eingebunden haben. Nun werden wir zu einer Eingabe in unser Programm aufgefordert und diese wird dann ausgegeben. Aber immer daran denken, es ist nur ein Zeichen.*/

char ch2;
printf("Bitte gib eine Zahl ein.\n");
scanf("%c",&ch2);
text2[14]=ch2;
printf(text2);

}
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -


Ich weis für ein Programm sind die Kommentare etwas zu ausschweifend.
Löscht sie einfach raus wenn Ihr anfangt mit dem Code zu arbeiten.

Grüße aus einem sehr warmen Zimmer.