Zeichenkettenverkettung mit Zeigern (Concatenate Strings Using Pointer)

CCBeginner
Jetzt üben

💡 Dieser Artikel wurde von AI-Assistenten übersetzt. Um die englische Version anzuzeigen, können Sie hier klicken

Einführung

In der C-Programmierung können wir zwei Strings mithilfe von Zeigern (Pointern) verketten, indem wir die Basisadressen der beiden Strings auf eine char-Zeigervariable zeigen lassen, den Zeiger bis zum Ende des ersten Strings inkrementieren und dann die Zeichen des zweiten Strings an das Ende des ersten kopieren.

In diesem Lab (LabEx) werden Sie lernen, wie Sie in der Programmiersprache C zwei Strings mithilfe von Zeigern verketten.

Erstellen einer neuen Datei

Zunächst öffnen Sie Ihren Texteditor und erstellen Sie eine neue Datei mit dem Namen main.c im Verzeichnis ~/project/.

Einbinden von Header-Dateien

In diesem Schritt müssen Sie die erforderlichen Header-Dateien (stdio.h und stdlib.h) in das Programm einbinden.

#include <stdio.h>
#include <stdlib.h>

Definition der main()-Funktion

Die main()-Funktion wird verwendet, um den Körper eines C-Programms zu definieren.

int main(){
  // TODO: Write code here
  return 0;
}

Deklaration von Variablen

In diesem Schritt deklarieren Sie zwei Zeichenarrays (character arrays) aa und bb, wobei jedes eine Größe von 100 Bytes hat.

char aa[100], bb[100];

Eingabe von Zeichenketten (Strings)

In diesem Schritt gibt der Benutzer die Werte für die beiden Zeichenketten (Strings) aa und bb ein und speichert sie mit der gets()-Funktion.

printf("Enter the first string: ");
gets(aa);

printf("Enter the second string to be concatenated: ");
gets(bb);

Verkettung von Zeichenketten (Strings)

In diesem Schritt definieren wir zwei Zeiger auf Zeichen (character pointers) a und b und beginnen, die zweite Zeichenkette (String) bb mit der ersten aa zu verketten.

char *a = aa;
char *b = bb;

while(*a){
  a++;
}

while(*b){
  *a = *b;
  b++;
  a++;
}
*a = '\0';
  • *a zeigt auf die nächste Speicheradresse, solange es nicht auf das Ende der ersten Zeichenkette (String) aa zeigt. Dies wird mit dem Ausdruck while(*a) erreicht.
  • Hier wird a auf die nächste Speicheradresse erhöht, bis es das Ende der ersten Zeichenkette (String) aa erreicht.
  • *b zeigt auf die nächste Speicheradresse, bis es nicht auf das Ende der zweiten Zeichenkette (String) bb zeigt. Dies wird mit dem Ausdruck while(*b) erreicht.
  • Für jede Speicheradresse wird a dem von b gezeigten Wert zugewiesen, und dann werden sowohl a als auch b erhöht. Dies wird mit dem Ausdruck *a = *b; b++; a++; erreicht.
  • Das '\0' repräsentiert das Ende der Zeichenkette (String).

Anzeige der verketteten Zeichenkette (String)

In diesem Schritt wird die verkettete Zeichenkette (String) nach Abschluss des Verkettungsprozesses angezeigt.

printf("\nThe string after concatenation is: %s ", aa);

Kompilieren und Ausführen

In diesem Schritt kompilieren und führen Sie die Datei main.c mit den folgenden Befehlen aus:

gcc main.c -o output
./output

Vollständiger Code

Nachfolgend ist der vollständige Code für das Programm "Verkettung von Zeichenketten (Strings) mit Zeigern" (Concatenate Strings Using Pointer) aufgeführt:

#include <stdio.h>
#include <stdlib.h>

int main(){
  char aa[100], bb[100];

  printf("Enter the first string: ");
  gets(aa);

  printf("Enter the second string to be concatenated: ");
  gets(bb);

  char *a = aa;
  char *b = bb;

  while(*a){
    a++;
  }

  while(*b){
    *a = *b;
    b++;
    a++;
  }
  *a = '\0';

  printf("\nThe string after concatenation is: %s ", aa);

  return 0;
}

Zusammenfassung

In diesem Lab haben Sie gelernt, wie man in der Programmiersprache C zwei Zeichenketten (Strings) mit Hilfe von Zeigern (pointers) verknüpft. Dies haben wir erreicht, indem wir die Basisadresse der beiden Zeichenketten auf eine Variable vom Typ Zeiger auf ein Zeichen (char pointer) geleitet haben, den Zeiger bis zum Ende der ersten Zeichenkette erhöht und dann die Zeichen der zweiten Zeichenkette an das Ende der ersten kopiert haben. Denken Sie daran, den Code zu kompilieren und auszuführen, um seine Funktionalität zu überprüfen.