Rückkehr Zeichenfolge aus einer C -Funktion

Rückkehr Zeichenfolge aus einer C -Funktion

A Saite ist eine Folge von Zeichen, die entweder aus einem einzelnen Zeichen oder mehreren Zeichen besteht und eine wichtige Datenstruktur in der Computerprogrammierung ist. Bei der Arbeit mit Saiten In C müssen bestimmte Operationen auf dem durchgeführt werden Saite Datentyp wie die Initialisierung der Initialisierung Saite, Inhalte zuweisen, verkettet die Saiten, Vergleich Saiten, und zurückgeben Saite.

Dieser Artikel konzentriert sich auf eine solche Operation in der Saite Datenstruktur, die eine zurückgibt a Saite Aus einer C -Funktion.

Rückkehr Zeichenfolge aus einer C -Funktion

Als Saite Es ist ein Array von Zeichen und um die Zeichenfolge aus einer C -Funktion zurückzugeben, ein Zeiger auf die String -Datenstruktur muss als Argument aus der Aufruffunktion an die aufgerufene Funktion als Parameter übergeben werden. Der Zeiger kann dann verwendet werden, um auf eine Reihe von Zeichen zu verweisen. Sobald der Zeiger auf eine Reihe von Zeichen zeigt, die Saite Der Wert kann von der aufgerufenen Funktion unter Verwendung der Return -Anweisung zurückgegeben werden.

Sie können sich das untergewandte Beispiel für ein besseres Verständnis ansehen.

#enthalten
const char* myName ()
Rückkehr "John";

int main (void)
printf ("%s", myName ());

Im obigen Code haben wir anstatt die Variable so zu deklarieren, wie wir es normalerweise tun, einen Zeiger damit, damit bei der Rückgabe dieser Zeichenfolge kein Fehler auftritt.

Ausgang


Eine C -Funktion kann keine zurückgeben a Saite Dies wurde als lokale Variable angegeben, da die Variable sofort entfernt (freigegeben) wird, wenn die Funktion ausgeführt wurde, sie nicht verfügbar ist und eine Warnung wie unten ausgelöst wird:

#enthalten
const char myname ()
char name = "John";
Rückgabename;

int main (void)
printf ("%s", myName ());

In diesem Code a Warnung wird ausgelöst, wenn die String zurückgegeben wird ohne Jeder Zeiger.

Ausgang


Sie können den Code also folgendermaßen schreiben:

#enthalten
const char* myName ()
char *name = "John";
Rückgabename;

int main (void)
printf ("%s", myName ());

Ausgang


Variablen werden standardmäßig auf dem Stapel zugewiesen, was der tatsächliche Grund für die obige Anweisung ist. Wenn jedoch ein Zeiger deklariert wird, wird der Wert, auf den er verweist. Sobald der Speicher zugewiesen ist, ist eine Kopie der Saite muss aus dem ursprünglichen Speicherort erstellt werden, der vom Zeiger gezeigt wird, und die Kopie muss von der aufgerufenen Funktion zurückgegeben werden. Die Aufruffunktion hat dann die Kontrolle über die ursprünglichen String -Daten, während die aufgerufene Funktion für die Befreiung des zugewiesenen Raums verantwortlich ist.

Abschluss

Eine C -Funktion kann einen Zeiger aufnehmen Saite als Argument und zurückgeben die Saite Wert als Ergebnis der Operationen innerhalb der aufgerufenen Funktion. Der Ansatz, dies zu erreichen, besteht darin, einen Zeiger von Char* zu verwenden. Die Aufruffunktion ist für den Speicher verantwortlich, der zum Speichern der zugewiesen wird Saite, Während die aufgerufene Funktion für die Befreiung des zugewiesenen Raums verantwortlich ist.