Menu
Coddy logo textTech

Strings als char-Arrays

Teil des Abschnitts Logik & Ablauf der C-Journey von Coddy. Lektion 12 von 63.

In C gibt es keinen eingebauten String-Datentyp, wie man ihn in anderen Programmiersprachen finden könnte. Stattdessen werden Strings als Arrays von Zeichen dargestellt. Dieses grundlegende Konzept ist essenziell, um zu verstehen, wie Text in der C-Programmierung verarbeitet wird.

Ein String in C ist einfach eine Folge von Zeichen, die an aufeinanderfolgenden Speicherplätzen gespeichert werden. Um einen String zu erstellen, deklarieren Sie ein Zeichen-Array, das groß genug ist, um alle benötigten Zeichen aufzunehmen, plus einen zusätzlichen Platz für ein spezielles Abschlusszeichen.

char greeting[6];  // Kann 5 Zeichen + Terminator enthalten
char message[20]; // Kann bis zu 19 Zeichen + Terminator enthalten

Der bequemste Weg, mit Strings zu arbeiten, besteht darin, sie direkt mit einem String-Literal zu initialisieren, wenn Sie das Array deklarieren. C kümmert sich automatisch um die Details der Speicherung jedes Zeichens im Array:

char greeting[6] = "Hello";
// Dies speichert: 'H', 'e', 'l', 'l', 'o', plus ein spezielles Abschlusszeichen

Sie können C auch die Array-Größe automatisch bestimmen lassen, indem Sie die Größenangabe bei der Initialisierung mit einem String-Literal weglassen:

char greeting[] = "Hello";  // C setzt die Größe hierfür automatisch auf 6

Zu verstehen, dass Strings Zeichen-Arrays sind, ist entscheidend, da es erklärt, wie C Textdaten verarbeitet und Sie auf die Arbeit mit Funktionen zur String-Manipulation vorbereitet, die auf diesen Zeichen-Arrays operieren.

challenge icon

Aufgabe

Einfach

Schreibe ein C-Programm, das das Erstellen und Arbeiten mit Zeichenarrays zum Speichern von Zeichenketten demonstriert. Dein Programm sollte:

  1. Ein Zeichenarray namens greeting mit ausreichend Platz für die Zeichenkette „Hello“ deklarieren (denke daran, das Nullterminierungszeichen zu berücksichtigen)
  2. Das greeting-Array mit dem Zeichenkettenliteral „Hello“ initialisieren
  3. Ein zweites Zeichenarray namens message mit 20 Elementen deklarieren
  4. Das message-Array mit dem Zeichenkettenliteral „Welcome“ initialisieren
  5. Ein drittes Zeichenarray namens word deklarieren, ohne die Größe anzugeben, und C die Größe automatisch bestimmen lassen, indem du es mit „Programming“ initialisierst
  6. Alle drei Zeichenketten mit printf und dem Formatspezifizierer %s ausgeben
  7. Die Größe jedes Arrays mit sizeof ausgeben, um zu zeigen, wie viel Speicher jedes Zeichenarray belegt

Deine Ausgabe sollte im folgenden Format angezeigt werden:

greeting: Hello
message: Welcome
word: Programming
Size of greeting: 6
Size of message: 20
Size of word: 12

Diese Aufgabe testet dein Verständnis dafür, wie man Zeichenarrays zum Speichern von Zeichenketten deklariert, wie Zeichenkettenliterale bei der Zuweisung zu Zeichenarrays automatisch mit einem Nullterminierungszeichen versehen werden und wie C Arraygrößen automatisch berechnet, wenn du die Größenangabe bei der Initialisierung weglässt.

Probier es selbst

#include <stdio.h>

int main() {
    // TODO: Schreiben Sie Ihren Code hier
    // Deklarieren und initialisieren Sie die Zeichen-Arrays wie in der Aufgabe angegeben
    
    // Geben Sie die Zeichenfolgen und ihre Größen aus
    printf("greeting: %s\n", greeting);
    printf("message: %s\n", message);
    printf("word: %s\n", word);
    printf("Size of greeting: %lu\n", sizeof(greeting));
    printf("Size of message: %lu\n", sizeof(message));
    printf("Size of word: %lu\n", sizeof(word));

    return 0;
}
quiz iconTeste dich selbst

Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.

Alle Lektionen in Logik & Ablauf

Übe selbstständig: Online-C-Compiler