Virknes atgriešana no C funkcijas

Virknes Atgriesana No C Funkcijas



A virkne ir rakstzīmju secība, kas sastāv vai nu no vienas rakstzīmes, vai vairākām rakstzīmēm un ir svarīga datu struktūra datorprogrammēšanā. Strādājot ar stīgas C, noteiktas darbības ir jāveic ar virkne datu tips, piemēram, inicializēšana virkne , satura piešķiršana, savienošana stīgas , salīdzinot stīgas , un atgriežot virkne .

Šajā rakstā galvenā uzmanība ir pievērsta vienai šādai darbībai virkne datu struktūra, kas atgriež a virkne no C funkcijas.







Virknes atgriešana no C funkcijas

virkne ir rakstzīmju masīvs, un, lai atgrieztu virkni no C funkcijas, rādītājs uz virknes datu struktūru ir jānodod kā arguments no izsaucošās funkcijas uz izsaukto funkciju kā parametrs. Pēc tam rādītāju var izmantot, lai norādītu uz rakstzīmju masīvu. Kad rādītājs norāda uz rakstzīmju masīvu, virkne vērtību var atgriezt no izsauktās funkcijas, izmantojot atgriešanas paziņojumu.



Lai labāk izprastu, varat apskatīt tālāk sniegto piemēru.



#include

const char * Mans vārds ( ) {
atgriezties 'Džons' ;
}

int galvenais ( nederīgs ) {
printf ( '%s' , Mans vārds ( ) ) ;
}





Iepriekš minētajā kodā tā vietā, lai deklarētu mainīgo, kā to darām parasti, mēs ar to izmantojām rādītāju, lai, atgriežot šo virkni, netiktu parādīta kļūda.

Izvade




C funkcija nevar atgriezt a virkne kas ir norādīts kā lokāls mainīgais, jo mainīgais tiks nekavējoties noņemts (izlaists), kad funkcija būs beigusies, padarot to nepieejamu un aktivizējot brīdinājumu, kā norādīts tālāk:

#include

const char myName ( ) {
rakstzīmes nosaukums = 'Džons' ;
atgriezties vārds;
}

int galvenais ( nederīgs ) {
printf ( '%s' , Mans vārds ( ) ) ;
}

Šajā kodā a brīdinājums tiek aktivizēts, kad tiek atgriezta virkne bez jebkuru rādītāju.

Izvade


Tātad kodu var rakstīt šādi:

#include

const char * Mans vārds ( ) {
char * vārds = 'Džons' ;
atgriezties vārds;
}
int galvenais ( nederīgs ) {
printf ( '%s' , Mans vārds ( ) ) ;
}

Izvade


Mainīgie lielumi tiek piešķirti kaudzē pēc noklusējuma, kas ir iepriekš minētā paziņojuma faktiskais iemesls. Tomēr, kad rādītājs ir deklarēts, vērtība, uz kuru tas norāda, tiek piešķirta kaudzē, kas netiek notīrīta pēc funkcijas pabeigšanas. Kad atmiņa ir piešķirta, kopija virkne ir jāizveido no sākotnējās atmiņas vietas, uz kuru norāda rādītājs, un kopija ir jāatgriež no izsauktās funkcijas. Pēc tam izsaukšanas funkcija kontrolēs sākotnējos virknes datus, savukārt izsauktā funkcija ir atbildīga par piešķirtās vietas atbrīvošanu.

Secinājums

C funkcija var novirzīt rādītāju uz virkne kā argumentu un atgriezt virkne vērtību izsauktajā funkcijā veikto darbību rezultātā. Lai to panāktu, tiek izmantots rādītājs char*. Zvanīšanas funkcija būs atbildīga par atmiņu, kas piešķirta, lai saglabātu virkne , savukārt izsauktā funkcija ir atbildīga par piešķirtās vietas atbrīvošanu.