Pagbabalik ng String mula sa isang C Function

Pagbabalik Ng String Mula Sa Isang C Function



A string ay isang pagkakasunud-sunod ng mga character na binubuo ng alinman sa isang character, o maramihang mga character at isang mahalagang istruktura ng data sa computer programming. Kapag nagtatrabaho kasama mga string sa C, ang ilang mga operasyon ay kailangang isagawa sa string uri ng data tulad ng pagsisimula ng string , pagtatalaga ng nilalaman, pagsasama-sama ng mga string , paghahambing mga string , at ibinabalik ang string .

Nakatuon ang artikulong ito sa isang ganoong operasyon sa string istraktura ng data, na bumabalik a string mula sa isang C function.







Pagbabalik ng String mula sa isang C Function

Bilang string ay isang array ng mga character at upang ibalik ang string mula sa isang C function, isang pointer sa string data structure ay kailangang maipasa bilang argumento mula sa calling function hanggang sa tinatawag na function bilang isang parameter. Ang pointer ay maaaring gamitin upang tumuro sa isang hanay ng mga character. Kapag ang pointer ay tumuturo sa isang hanay ng mga character, ang string maaaring ibalik ang halaga mula sa tinatawag na function gamit ang return statement.



Maaari mong tingnan ang ibinigay na halimbawa sa ibaba para sa mas mahusay na pag-unawa.



#include

const char * pangalan ko ( ) {
bumalik 'John' ;
}

int pangunahing ( walang bisa ) {
printf ( '%s' , pangalan ko ( ) ) ;
}





Sa code sa itaas, sa halip na ideklara ang variable tulad ng karaniwan naming ginagawa, gumamit kami ng isang pointer kasama nito upang kapag ibinalik namin ang string na ito, walang nangyayaring error.

Output




Hindi maibabalik ng isang C function ang a string na tinukoy bilang isang lokal na variable dahil ang variable ay agad na aalisin (ilalabas) kapag ang function ay tapos na sa pagtakbo, na hindi ito magagamit at nagti-trigger ng isang babala tulad ng sa ibaba:

#include

const char myName ( ) {
char name = 'John' ;
bumalik pangalan;
}

int pangunahing ( walang bisa ) {
printf ( '%s' , pangalan ko ( ) ) ;
}

Sa code na ito, a babala ay na-trigger habang ibinabalik ang string wala anumang pointer.

Output


Kaya, maaari mong isulat ang code sa sumusunod na paraan:

#include

const char * pangalan ko ( ) {
char * pangalan = 'John' ;
bumalik pangalan;
}
int pangunahing ( walang bisa ) {
printf ( '%s' , pangalan ko ( ) ) ;
}

Output


Ang mga variable ay inilalaan sa stack bilang default, na siyang aktwal na dahilan para sa pahayag sa itaas. Gayunpaman, kapag ang isang pointer ay idineklara, ang halaga na itinuturo nito ay mailalaan sa heap, na hindi na-clear pagkatapos ng function. Kapag ang memorya ay inilalaan, isang kopya ng string kailangang malikha mula sa orihinal na lokasyon ng memorya na itinuro ng pointer at ang kopya ay kailangang ibalik mula sa tinatawag na function. Ang function ng pagtawag ay magkakaroon ng kontrol sa orihinal na data ng string, habang ang tinatawag na function ay responsable para sa pagpapalaya sa inilalaan na espasyo.

Konklusyon

Ang isang C function ay maaaring kumuha ng isang pointer sa string bilang argumento at ibalik ang string halaga bilang resulta ng mga operasyong isinagawa sa loob ng tinatawag na function. Ang diskarte upang makamit ito ay gumagamit ng isang pointer ng char*. Ang function ng pagtawag ay magiging responsable para sa memorya na inilaan upang iimbak ang string , habang ang tinatawag na function ay may pananagutan sa pagpapalaya sa inilalaan na espasyo.