Wie man einen Substring in C erhält

Satishkumar Bharadwaj 12 Oktober 2023
  1. memcpy() Funktion zum Erhalten einer Teilzeichenkette in C
  2. strncpy() Funktion zum Abrufen einer Teilzeichenkette in C
Wie man einen Substring in C erhält

Dieses Tutorial führt ein, wie man eine Teilzeichenkette aus dem Zeichenwert in C erhält. Es gibt verschiedene Methoden, um eine Teilzeichenkette aus dem Zeichen zu erhalten, wie memcpy() und strncpy().

memcpy() Funktion zum Erhalten einer Teilzeichenkette in C

Die Funktion memcpy() kopiert die Anzahl der Zeichen von der Quelle in den Speicherbereich des Ziels. Diese Funktion ist in der <string.h> Header-Datei verfügbar.

Diese Funktion erzeugt ein Problem, wenn sich die Adressen von Quelle und Ziel überschneiden. Diese Funktion prüft nicht auf eine Null-Adresse oder ob der Überlauf auftritt oder nicht.

Die Funktion memcpy() gibt einen Zeiger auf die Zielzeichenkette zurück. Es gibt keinen Rückgabewert, um einen Fehler anzuzeigen.

Syntax von memcpy()

void *memcpy(void *destination_string, const void *source_string,
             size_t number);
  • Der destination_string ist ein Zeiger auf den Zielstring.
  • Der source_string ist ein Zeiger auf ein Array mit einem Wert des ursprünglichen Zeichentyps.
  • Die number ist die Anzahl der Zeichen.
#include <stdio.h>
#include <string.h>

int main(void) {
  char *text = "The test string is here";
  char subtext[7];

  memcpy(subtext, &text[9], 6);
  subtext[6] = '\0';
  printf("The original string is: %s\n", text);
  printf("Substring is: %s", subtext);

  return 0;
}

Ausgabe:

The original string is: The test string is here
Substring is: string

strncpy() Funktion zum Abrufen einer Teilzeichenkette in C

Die strncpy() Funktion ist die gleiche wie die strcpy() Funktion. Der einzige Unterschied besteht darin, dass die Funktion strncpy() die angegebene Anzahl von Zeichen von der Quellzeichenkette in die Zielzeichenkette kopiert. Die Funktion strncpy() ist in der Header-Datei <string.h> verfügbar.

Diese Funktion gibt nach dem Kopieren der Quellzeichenkette einen Zeiger auf die Zielzeichenkette zurück.

Syntax von strncpy()

void *strncpy(void *destination_string, const void *source_string,
              size_t number);
  • Der destination_string ist ein Zeiger auf den Zielstring.
  • Der source_string ist ein Zeiger auf ein Array mit den ursprünglichen char-Werten.
  • Die number ist die Anzahl der Zeichen.

Wenn die Funktion strncpy() auf ein Null-Zeichen im source_string trifft, fügt die Funktion Null-Zeichen zum destination_string hinzu.

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

int main(void) {
  char *text = "The test string is here";
  char subtext[7];

  strncpy(subtext, &text[9], 6);
  subtext[6] = '\0';
  printf("The original string is: %s\n", text);
  printf("Substring is: %s", subtext);

  return 0;
}

Ausgabe:

The original string is: The test string is here
Substring is: string

Verwandter Artikel - C Char

Verwandter Artikel - C String