Bagaimanakah Fungsi strtok() Berfungsi?
Untuk membelah rentetan menggunakan strtok() , anda perlu memahami cara ia berfungsi terlebih dahulu. The strtok() membaca aksara rentetan input mengikut aksara sehingga ia menjumpai pembatas. Sebaik sahaja pembatas ditemui, strtok() menggantikannya dengan aksara null '\0', dengan berkesan membelah rentetan asal kepada dua bahagian. Penunjuk kepada aksara pertama rentetan kemudian dikembalikan oleh fungsi tersebut. The strtok() sintaks fungsi ialah:
strtok ( char * str , const char * saya kongsi ) ;The strtok() fungsi mengambil dua hujah- penuding kepada token pertama dalam set token dan rentetan yang memegang aksara pembatas. Ia mengembalikan penuding kepada token seterusnya, yang bermula serta-merta selepas pembatas yang membelah token terakhir. Ia mengembalikan NULL jika tiada lagi token.
Bagaimana untuk Memisahkan Rentetan dengan Strtok() dalam Pengaturcaraan C?
Berikut adalah contoh cara menggunakan strtok() untuk membelah rentetan:
#include
#include
int utama ( ) {
char input [ ] = 'Linux, Petunjuk' ;
char * token ;
token = strtok ( input , ',' ) ;
sementara ( token != NULL ) {
printf ( '%s \n ' , token ) ;
token = strtok ( NULL , ',' ) ;
}
kembali 0 ;
}
Dalam contoh di atas, kami mula-mula mengisytiharkan penunjuk kepada char. Kami kemudian menggunakan strtok() untuk memisahkan rentetan input kepada token. Panggilan pertama daripada strtok() mengambil dua hujah: rentetan input dan rentetan pembatas ','. Token pertama, 'Linux,' ialah token itu strtok() kembali sebagai penunjuk kepada . Kami kemudian menggunakan gelung sementara untuk lelaran melalui rentetan input, menggunakan strtok() dengan penunjuk NULL untuk terus membelah token yang tinggal. Rentetan pembatas sekali lagi diluluskan sebagai hujah kepada strtok() untuk menunjukkan aksara pembatas.
Pengeluaran
Had Fungsi Strtok().
1: Mengubah suai Rentetan Asal
The strtok() fungsi tidak mengembalikan salinan rentetan; sebaliknya, ia mengubah suai rentetan asal. Oleh itu, jika anda perlu mempunyai versi rentetan yang tidak diubah suai selepas membelahnya, anda harus membuat salinan rentetan asal sebelum menggunakan strtok() .
2: Tak segerak
Satu had penting bagi strtok() ialah ia hanya boleh digunakan pada satu rentetan pada satu masa. Dalam erti kata lain, anda tidak boleh menggunakannya untuk menandakan berbilang rentetan secara serentak.
3: Kapasiti Terhad
Satu lagi batasan yang berpotensi ialah itu strtok() mempunyai kapasiti terhad untuk mengendalikan pembatas berulang. Contohnya, jika rentetan anda mempunyai ruang berturut-turut antara perkataan, strtok() menganggapnya sebagai pembatas tunggal. Untuk mengendalikan kes sedemikian, anda perlu menggunakan pendekatan yang berbeza.
Kesimpulan
The strtok() function ialah fungsi yang sangat berguna untuk membelah rentetan dalam pengaturcaraan C. Ia mengambil rentetan input dan rentetan pembatas dan mengembalikan penunjuk kepada token pertama yang ditemui dalam rentetan input. strtok() adalah merosakkan, oleh itu jika anda perlu mengekalkan integriti rentetan asal, adalah dinasihatkan untuk mencipta pendua daripadanya. Sekarang anda tahu cara melakukannya, anda boleh memotong mana-mana rentetan menjadi kepingan yang lebih kecil untuk diproses.