Merkkijonon palauttaminen C-funktiosta

Merkkijonon Palauttaminen C Funktiosta



A merkkijono on merkkijono, joka koostuu joko yhdestä merkistä tai useista merkeistä ja on tärkeä tietorakenne tietokoneohjelmoinnissa. Kun työskentelet jouset C:ssä tietyt toiminnot on suoritettava merkkijono tietotyyppi, kuten alustus merkkijono , sisällön määrittäminen, ketjuttaminen jouset , vertaamalla jouset , ja palauttamalla merkkijono .

Tämä artikkeli keskittyy yhteen tällaiseen operaatioon merkkijono tietorakenne, joka palauttaa a merkkijono C-funktiosta.







Merkkijonon palauttaminen C-funktiosta

Kuten merkkijono on merkkijono ja jos haluat palauttaa merkkijonon C-funktiosta, osoitin merkkijonotietorakenteeseen on välitettävä argumenttina kutsuvasta funktiosta kutsuttuun funktioon parametrina. Osoitinta voidaan sitten käyttää osoittamaan merkkijonoa. Kun osoitin osoittaa merkkijonoon, merkkijono arvo voidaan palauttaa kutsutusta funktiosta return-käskyn avulla.



Voit katsoa alla olevaa esimerkkiä ymmärtääksesi paremmin.



#include

const char * nimeni ( ) {
palata 'John' ;
}

int main ( mitätön ) {
printf ( '%s' , nimeni ( ) ) ;
}





Yllä olevassa koodissa sen sijaan, että olisimme ilmoittaneet muuttujan kuten tavallisesti, käytimme sen kanssa osoitinta, jotta kun palautamme tämän merkkijonon, virhettä ei tapahdu.

Lähtö




C-funktio ei voi palauttaa a:ta merkkijono joka on määritetty paikalliseksi muuttujaksi, koska muuttuja poistetaan (vapautetaan) välittömästi, kun toiminto on suoritettu, jolloin se ei ole käytettävissä ja laukaisee varoituksen seuraavasti:

#include

const char myName ( ) {
merkin nimi = 'John' ;
palata nimi;
}

int main ( mitätön ) {
printf ( '%s' , nimeni ( ) ) ;
}

Tässä koodissa a Varoitus laukeaa, kun merkkijonoa palautetaan ilman mikä tahansa osoitin.

Lähtö


Joten voit kirjoittaa koodin seuraavalla tavalla:

#include

const char * nimeni ( ) {
hiiltyä * nimi = 'John' ;
palata nimi;
}
int main ( mitätön ) {
printf ( '%s' , nimeni ( ) ) ;
}

Lähtö


Muuttujat allokoidaan pinoon oletusarvoisesti, mikä on todellinen syy yllä olevaan lauseeseen. Kuitenkin, kun osoitin on ilmoitettu, arvo, johon se osoittaa, varataan kasaan, jota ei tyhjennetä toiminnon päätyttyä. Kun muisti on varattu, kopio merkkijono on luotava osoittimen osoittamasta alkuperäisestä muistipaikasta ja kopio on palautettava kutsutusta funktiosta. Kutsuva toiminto hallitsee sitten alkuperäistä merkkijonodataa, kun taas kutsuttu toiminto on vastuussa varatun tilan vapauttamisesta.

Johtopäätös

C-funktio voi viedä osoittimen merkkijono argumenttina ja palauta merkkijono arvo kutsutun funktion sisällä suoritettujen toimintojen tuloksena. Tämä saavutetaan käyttämällä osoitinta char*. Kutsuva toiminto on vastuussa tallentamiseen varatusta muistista merkkijono , kun taas kutsuttu funktio on vastuussa varatun tilan vapauttamisesta.