Nullterminierte Zeichenketten in C

Naila Saad Siddiqui 15 Februar 2024
  1. Zeichenketten in C
  2. C-Strings-Bibliotheksfunktionen in C
Nullterminierte Zeichenketten in C

In diesem kleinen Artikel wird die Verwendung von Zeichenfolgen in der Sprache C erörtert. Strings in der C-Sprache werden unter Verwendung der Zeichenarrays gebildet.

Zeichenketten in C

Strings sind in Wirklichkeit ein eindimensionales Array von Zeichen, die mit dem Nullzeichen \0 abgeschlossen werden. Den Zeichen, aus denen die Zeichenfolge besteht, folgt dann eine Null, um eine Zeichenfolge mit einer Nullterminierung zu bilden.

Das folgende Code-Snippet erstellt eine Zeichenfolge mit dem Nullzeichen am Ende. Um das Nullzeichen am Ende zu platzieren, müssen wir die Länge der Zeichenfolge um ein Zeichen größer halten als die ursprüngliche Wortanzahl der Zeichenfolge.

char test[5] = {'T', 'e', 's', 't', '\0'};

Dies ist eine Möglichkeit, den String in C zu initialisieren. Beachten Sie, dass die Stringgröße auf 5 gesetzt ist, aber die Anzahl der Zeichen in den Strings 4 ist und das 5. Zeichen das Nullzeichen \0 ist.

Sie können auch eine Zeichenfolge wie im folgenden Codesegment initialisieren.

char test[] = "Test";

Daher ist es nicht zwingend erforderlich, das Nullzeichen am Ende der Zeichenfolge zu platzieren. Der C-Compiler erledigt das automatisch für uns.

Das abschließende Nullzeichen wird nicht gedruckt, wenn wir beide Zeichenfolgen drucken. Schauen wir uns das Beispiel unten an.

#include <stdio.h>
int main() {
  char test[5] = {'T', 'e', 's', 't', '\0'};
  char test2[] = "Test";
  printf("Test message: %s\n", test);
  printf("Test message 2: %s\n", test2);
}

Wir haben im obigen Codesegment zwei Strings erstellt und mit den gleichen Daten initialisiert. Wir haben explizit ein Nullzeichen am Ende mit dem ersten platziert.

Gleichzeitig wird es nicht im zweiten platziert. Wenn wir diese Zeichenfolgen drucken, haben beide die gleichen Daten.

Ausgang:

C-Strings-Demo

C-Strings-Bibliotheksfunktionen in C

Viele Funktionen werden in C für nullterminierte Strings unterstützt. In der Klasse string werden zahlreiche Funktionen bereitgestellt; Einige sind wie folgt.

NEIN Funktionen Beschreibung
1 strcpy(str1, str2); Es kopiert str1 in str2.
2 strcat(str1, str2); Es verbindet str2 und str1 so, dass auf str1 str2 folgt
3 strlen(str1); Es gibt die Länge von str1 an.
4 strcmp(str1, str2); Es hat drei Ergebnisse: 1 wenn str1 und str2 gleich sind; negativ wenn str1 < str2; positiv wenn str1> str2
5 strchr(str1, c); Gibt einen Verweis auf das erste Vorkommen von c in str1 zurück
6 strstr(str1, str2); Gibt einen Verweis auf das erste Vorkommen von str2 in str1 zurück

Das folgende Beispiel verwendet einige dieser Funktionen, um die Verwendung von Zeichenfolgen in C zu demonstrieren.

#include <stdio.h>
#include <string.h>

int main() {
  char mystr1[12] = "First";
  char mystr2[12] = "Second";
  char mystr3[12];
  int length;

  /* copy the first string into the third */
  strcpy(mystr3, mystr1);
  printf("strcpy( mystr3, mystr1) :  %s\n", mystr3);

  /* concatenates first and second */
  strcat(mystr1, mystr2);
  printf("strcat( mystr1, mystr2):   %s\n", mystr1);

  /* length of the first string after concatenation */
  length = strlen(mystr1);
  printf("strlen(mystr1) :  %d\n", length);

  return 0;
}

Ausgang:

Ausgabe der Zeichenfolgenfunktionen

Verwandter Artikel - C String