String aus einer C-Funktion zurückgeben

String Aus Einer C Funktion Zuruckgeben



A Schnur ist eine Zeichenfolge, die entweder aus einem einzelnen Zeichen oder mehreren Zeichen besteht und eine wichtige Datenstruktur in der Computerprogrammierung darstellt. Beim Arbeiten mit Saiten In C müssen bestimmte Operationen auf der ausgeführt werden Schnur Datentyp wie die Initialisierung der Schnur , Inhalt zuweisen, verketten der Saiten , vergleichen Saiten , und die Rückgabe der Schnur .

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







String aus einer C-Funktion zurückgeben

Als Schnur ist ein Array von Zeichen, und um einen String von einer C-Funktion zurückzugeben, muss ein Zeiger auf die String-Datenstruktur als Argument von der aufrufenden Funktion an die aufgerufene Funktion als Parameter übergeben werden. Der Zeiger kann dann verwendet werden, um auf ein Array von Zeichen zu zeigen. Sobald der Zeiger auf ein Array von Zeichen zeigt, wird die Schnur value kann von der aufgerufenen Funktion mit der return-Anweisung zurückgegeben werden.



Zum besseren Verständnis können Sie sich das unten angegebene Beispiel ansehen.



#include

const char * mein Name ( ) {
zurückkehren 'John' ;
}

int Haupt ( Leere ) {
Druckf ( '%S' , mein Name ( ) ) ;
}





Im obigen Code haben wir, anstatt die Variable wie gewohnt zu deklarieren, einen Zeiger damit verwendet, sodass bei der Rückgabe dieser Zeichenfolge kein Fehler auftritt.

Ausgang




Eine C-Funktion kann kein a zurückgeben Schnur die als lokale Variable angegeben wurde, da die Variable sofort entfernt (freigegeben) wird, wenn die Ausführung der Funktion beendet ist, wodurch sie nicht verfügbar ist und eine Warnung wie folgt auslöst:

#include

const char meinName ( ) {
Zeichenname = 'John' ;
zurückkehren Name;
}

int Haupt ( Leere ) {
Druckf ( '%S' , mein Name ( ) ) ;
}

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

Ausgang


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

#include

const char * mein Name ( ) {
verkohlen * Name = 'John' ;
zurückkehren Name;
}
int Haupt ( Leere ) {
Druckf ( '%S' , mein Name ( ) ) ;
}

Ausgang


Variablen werden standardmäßig auf dem Stack allokiert, was der eigentliche Grund für die obige Aussage ist. Wenn jedoch ein Zeiger deklariert wird, wird der Wert, auf den er zeigt, auf dem Heap zugewiesen, der nach Beendigung der Funktion nicht gelöscht wird. Sobald der Speicher zugewiesen ist, wird eine Kopie der Schnur muss aus dem ursprünglichen Speicherort erstellt werden, auf den der Zeiger zeigt, und die Kopie muss von der aufgerufenen Funktion zurückgegeben werden. Die aufrufende Funktion hat dann die Kontrolle über die ursprünglichen Zeichenfolgendaten, während die aufgerufene Funktion für die Freigabe des zugewiesenen Speicherplatzes verantwortlich ist.

Abschluss

Eine C-Funktion kann einen Zeiger auf nehmen Schnur als Argument und gib die zurück Schnur Wert als Ergebnis der Operationen, die innerhalb der aufgerufenen Funktion ausgeführt werden. Der Ansatz, um dies zu erreichen, ist die Verwendung eines Zeigers von char*. Die aufrufende Funktion ist für den Speicher verantwortlich, der zum Speichern von zugewiesen wird Schnur , während die aufgerufene Funktion für die Freigabe des zugewiesenen Speicherplatzes verantwortlich ist.