C Zeichenfolgen
Zeichenfolgen
Zeichenfolgen werden zum Speichern von Text/Zeichen verwendet.
Zum Beispiel ist „Hello World“ eine Zeichenfolge.
Im Gegensatz zu vielen anderen Programmiersprachen verfügt C nicht über einen String-Typ zum einfachen Erstellen von String-Variablen. Stattdessen müssen Sie den Typ char
verwenden und ein Array von Zeichen erstellen, um eine Zeichenfolge in C zu erstellen:
char greetings[] = "Hello World!";
Beachten Sie, dass Sie doppelte Anführungszeichen verwenden müssen (""
).
Um die Zeichenfolge auszugeben, können Sie die Funktion printf()
zusammen mit dem Formatbezeichner %s
verwenden C, dass wir jetzt mit Strings arbeiten:
Zugriffszeichenfolgen
Da Strings in C tatsächlich Arrays sind, können Sie auf einen String zugreifen, indem Sie auf seine Indexnummer in eckigen Klammern verweisen []
.
In diesem Beispiel wird das erste Zeichen (0) gedruckt greetings:
Beachten Sie, dass wir den Formatbezeichner %c
verwenden müssen, um ein einzelnes Zeichen zu drucken.
Zeichenfolgen ändern
Um den Wert eines bestimmten Zeichens in einer Zeichenfolge zu ändern, beziehen Sie sich auf die Indexnummer und verwenden Sie einfache Anführungszeichen:
Beispiel
char greetings[] = "Hello World!";
greetings[0] = 'J';
printf("%s", greetings);
// Outputs Jello World! instead of Hello World!
Try it Yourself »
Schleife durch einen String
Sie können die Zeichen einer Zeichenfolge auch in einer Schleife durchlaufen, indem Sie eine for
-Schleife verwenden:
Beispiel
char carName[] = "Volvo";
int i;
for (i = 0; i < 5; ++i) {
printf("%c\n", carName[i]);
}
Try it Yourself »
Und wie wir im Kapitel Arrays angegeben haben, können Sie auch die sizeof-Formel verwenden (anstatt die Größe des Arrays manuell in die Schleife zu schreiben). Bedingung (i < 5)
), um die Schleife nachhaltiger zu machen:
Beispiel
char carName[] = "Volvo";
int length = sizeof(carName) / sizeof(carName[0]);
int i;
for (i = 0; i < length; ++i) {
printf("%c\n", carName[i]);
}
Try it Yourself »
Eine andere Möglichkeit, Strings zu erstellen
In den obigen Beispielen haben wir ein „String-Literal“ verwendet, um eine String-Variable zu erstellen. Dies ist der einfachste Weg, eine Zeichenfolge in C zu erstellen.
Beachten Sie außerdem, dass Sie eine Zeichenfolge mit einer Reihe von Zeichen erstellen können. Dieses Beispiel führt zum gleichen Ergebnis wie das Beispiel am Anfang dieser Seite:
Beispiel
char greetings[] = {'H', 'e', 'l', 'l', 'o', ' ', 'W', 'o', 'r', 'l', 'd', '!', '\0'};
printf("%s", greetings);
Try it Yourself »
Warum fügen wir am Ende das Zeichen \0
ein? Dies wird als „Null-Abschlusszeichen“ bezeichnet und muss beim Erstellen von Zeichenfolgen mit diesem Zeichen enthalten seine Methode. Es teilt C mit, dass dies das Ende der Zeichenfolge ist.
Unterschiede
Der Unterschied zwischen den beiden Methoden zum Erstellen von Zeichenfolgen besteht darin, dass die erste Methode einfacher zu schreiben ist und Sie das Zeichen \0
nicht einschließen müssen C erledigt das für Sie.
Sie sollten beachten, dass die Größe beider Arrays gleich ist: Sie haben beide 13 Zeichen (Leerzeichen zählen übrigens auch als Zeichen), einschließlich des \0
Zeichen:
Beispiel
char greetings[] = {'H', 'e', 'l', 'l', 'o', ' ', 'W', 'o', 'r', 'l', 'd', '!', '\0'};
char greetings2[] = "Hello World!";
printf("%lu\n", sizeof(greetings)); // Outputs 13
printf("%lu\n", sizeof(greetings2)); // Outputs 13
Try it Yourself »
Beispiel aus dem wirklichen Leben
Verwenden Sie Zeichenfolgen, um eine einfache Willkommensnachricht zu erstellen:
Beispiel
char message[] = "Good to see you,";
char fname[] = "John";
printf("%s %s!", message, fname);
Try it Yourself »