Mengembalikan Rentetan daripada Fungsi C

Mengembalikan Rentetan Daripada Fungsi C



A tali ialah urutan aksara yang terdiri daripada sama ada satu aksara, atau berbilang aksara dan merupakan struktur data penting dalam pengaturcaraan komputer. Apabila bekerja dengan rentetan dalam C, operasi tertentu perlu dilakukan pada tali jenis data seperti memulakan tali , menetapkan kandungan, menggabungkan rentetan , membandingkan rentetan , dan mengembalikan tali .

Artikel ini memfokuskan pada satu operasi sedemikian dalam tali struktur data, iaitu mengembalikan a tali daripada fungsi C.







Mengembalikan Rentetan daripada Fungsi C

Sebagai tali ialah tatasusunan aksara dan untuk mengembalikan rentetan daripada fungsi C, penunjuk kepada struktur data rentetan perlu dihantar sebagai hujah daripada fungsi panggilan kepada fungsi yang dipanggil sebagai parameter. Penunjuk kemudiannya boleh digunakan untuk menunjuk kepada tatasusunan aksara. Sebaik sahaja penunjuk menunjuk kepada tatasusunan aksara, tali nilai boleh dikembalikan daripada fungsi yang dipanggil menggunakan pernyataan pulangan.



Anda boleh melihat contoh yang diberikan di bawah untuk pemahaman yang lebih baik.



#include

const char * nama saya ( ) {
kembali 'John' ;
}

int utama ( batal ) {
printf ( '%s' , nama saya ( ) ) ;
}





Dalam kod di atas, daripada mengisytiharkan pembolehubah seperti biasa, kami menggunakan penunjuk dengannya supaya apabila kami mengembalikan rentetan ini, tiada ralat berlaku.

Pengeluaran




Fungsi C tidak dapat mengembalikan a tali yang telah ditentukan sebagai pembolehubah tempatan kerana pembolehubah akan segera dialih keluar (dilepaskan) apabila fungsi telah selesai dijalankan, menjadikannya tidak tersedia dan mencetuskan amaran seperti di bawah:

#include

const char myName ( ) {
nama char = 'John' ;
kembali nama;
}

int utama ( batal ) {
printf ( '%s' , nama saya ( ) ) ;
}

Dalam kod ini, a amaran dicetuskan semasa rentetan dikembalikan tanpa sebarang penunjuk.

Pengeluaran


Jadi, anda boleh menulis kod dengan cara berikut:

#include

const char * nama saya ( ) {
char * nama = 'John' ;
kembali nama;
}
int utama ( batal ) {
printf ( '%s' , nama saya ( ) ) ;
}

Pengeluaran


Pembolehubah diperuntukkan pada tindanan secara lalai, yang merupakan sebab sebenar untuk pernyataan di atas. Walau bagaimanapun, apabila penuding diisytiharkan, nilai yang ditunjukkannya akan diperuntukkan pada timbunan, yang tidak dikosongkan selepas fungsi selesai. Sebaik sahaja memori diperuntukkan, satu salinan tali perlu dibuat dari lokasi memori asal yang ditunjuk oleh penunjuk dan salinan perlu dikembalikan daripada fungsi yang dipanggil. Fungsi panggilan kemudiannya akan mempunyai kawalan ke atas data rentetan asal, manakala fungsi yang dipanggil bertanggungjawab untuk membebaskan ruang yang diperuntukkan.

Kesimpulan

Fungsi C boleh mengambil penunjuk ke tali sebagai hujah dan kembalikan tali nilai sebagai hasil daripada operasi yang dijalankan dalam fungsi yang dipanggil. Pendekatan untuk mencapai ini adalah menggunakan penunjuk char*. Fungsi panggilan akan bertanggungjawab untuk memori yang diperuntukkan untuk menyimpan tali , manakala fungsi dipanggil bertanggungjawab untuk membebaskan ruang yang diperuntukkan.