Bagaimana cara Membagi String dengan strtok() dalam Pemrograman C?

Bagaimana Cara Membagi String Dengan Strtok Dalam Pemrograman C



Memisahkan string penting karena berbagai alasan seperti pemrosesan teks, analisis data atau penguraian, dan bahasa pemrograman C menawarkan banyak cara untuk menangani tugas ini. Namun, fungsi C paling populer yang memungkinkan tali pemisah menjadi beberapa token oleh pembatas yang ditentukan strtok() . Menjadi fungsi perpustakaan, ini tersedia di perpustakaan C standar yang mendukung operasi string.

Bagaimana Cara Kerja Fungsi strtok()?

Untuk membagi string menggunakan strtok() , Anda harus terlebih dahulu memahami cara kerjanya. Itu strtok() membaca string input karakter demi karakter hingga menemukan pembatas. Setelah pembatas ditemukan, strtok() menggantinya dengan karakter nol '\0', yang secara efektif memisahkan string asli menjadi dua bagian. Pointer ke karakter pertama string kemudian dikembalikan oleh fungsi. Itu strtok() sintaks fungsi adalah:

strtok ( arang * str , const arang * saya berbagi ) ;

Itu strtok() fungsi mengambil dua argumen- pointer ke token pertama di set token dan string yang memegang karakter pembatas. Ini mengembalikan penunjuk ke token berikutnya, yang dimulai segera setelah pembatas yang memisahkan token terakhir. Ini mengembalikan NULL jika tidak ada lagi token.







Bagaimana cara Membagi String dengan Strtok() dalam Pemrograman C?

Berikut adalah contoh cara menggunakan strtok() untuk memisahkan string:



#termasuk

# sertakan

int utama ( ) {

arang memasukkan [ ] = 'Linux, Petunjuk' ;

arang * token ;

token = strtok ( memasukkan , ',' ) ;

ketika ( token != BATAL ) {

printf ( '%S \N ' , token ) ;

token = strtok ( BATAL , ',' ) ;

}

kembali 0 ;

}

Dalam contoh di atas, pertama-tama kita mendeklarasikan sebuah pointer ke sebuah char. Kami kemudian menggunakan strtok() untuk membagi string input menjadi token. Panggilan pertama dari strtok() mengambil dua argumen: string input dan string pembatas ','. Token pertama, 'Linux,' adalah salah satunya strtok() kembali sebagai pointer ke . Kami kemudian menggunakan while loop untuk beralih melalui string input, menggunakan strtok() dengan pointer NULL untuk melanjutkan pemisahan token yang tersisa. String pembatas sekali lagi diteruskan sebagai argumen ke strtok() untuk menunjukkan karakter pembatas.



Keluaran





Keterbatasan Fungsi Strtok()

1: Memodifikasi String Asli

Itu strtok() fungsi tidak mengembalikan salinan string; sebaliknya, itu memodifikasi string asli. Oleh karena itu, jika Anda perlu memiliki versi string yang tidak dimodifikasi setelah memisahkannya, Anda harus membuat salinan dari string asli sebelum menjalankan strtok() .



2: Asinkron

Satu batasan signifikan dari strtok() adalah bahwa itu hanya dapat digunakan pada satu string pada satu waktu. Dengan kata lain, Anda tidak dapat menggunakannya untuk menandai beberapa string secara bersamaan.

3: Kapasitas Terbatas

Keterbatasan potensial lainnya adalah itu strtok() memiliki kapasitas terbatas untuk menangani pembatas berulang. Misalnya, jika string Anda memiliki spasi berurutan di antara kata-kata, strtok() memperlakukannya sebagai pembatas tunggal. Untuk menangani kasus seperti itu, Anda harus menggunakan pendekatan yang berbeda.

Kesimpulan

Itu strtok() function adalah fungsi yang sangat berguna untuk memisahkan string dalam pemrograman C. Dibutuhkan string input dan string pembatas dan mengembalikan pointer ke token pertama yang ditemukan di string input. strtok() merusak, jadi jika Anda perlu menjaga integritas string asli, disarankan untuk membuat duplikatnya. Sekarang setelah Anda tahu cara melakukannya, Anda dapat memotong string apa pun menjadi bagian yang lebih kecil untuk diproses.