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.
Eine neue Datei erstellen
Zunächst öffnen Sie Ihren Texteditor und erstellen Sie eine neue Datei mit dem Namen main.c im Verzeichnis ~/project/.
Header-Dateien einbinden
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>
Die main()-Funktion definieren
Die main()-Funktion wird verwendet, um den Körper eines C-Programms zu definieren.
int main(){
// TODO: Write code here
return 0;
}
Variablen deklarieren
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];
Zeichenketten eingeben
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);
Zeichenketten verketten
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';
*azeigt auf die nächste Speicheradresse, solange es nicht auf das Ende der ersten Zeichenkette (String)aazeigt. Dies wird mit dem Ausdruckwhile(*a)erreicht.- Hier wird
aauf die nächste Speicheradresse erhöht, bis es das Ende der ersten Zeichenkette (String)aaerreicht. *bzeigt auf die nächste Speicheradresse, bis es nicht auf das Ende der zweiten Zeichenkette (String)bbzeigt. Dies wird mit dem Ausdruckwhile(*b)erreicht.- Für jede Speicheradresse wird
adem vonbgezeigten Wert zugewiesen, und dann werden sowohlaals auchberhöht. Dies wird mit dem Ausdruck*a = *b; b++; a++;erreicht. - Das
'\0'repräsentiert das Ende der Zeichenkette (String).
Verkettete Zeichenkette anzeigen
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.



