C ++ wcstok () - C ++ Pustaka Standar

Fungsi wcstok () di C ++ mengembalikan token berikutnya dalam string lebar yang diakhiri dengan null.

Fungsi wcstok () didefinisikan dalam file header.

wcstok () prototipe

 wchar_t * wcstok (wchar_t * str, const wchar_t * delim, wchar_t ** ptr);

Fungsi wcstok () mengambil tiga argumen: str, delim dan ptr. Fungsi ini menemukan token dalam string lebar yang ditunjukkan oleh str. Pembatas penunjuk menunjuk ke karakter pemisah.

Fungsi ini dapat dipanggil beberapa kali untuk mendapatkan token dari string lebar yang sama. Ada dua kasus:

  1. Jika str bukan NULL:
    Panggilan ke wcstok () dianggap panggilan pertama untuk string lebar itu. Fungsi mencari karakter lebar pertama yang tidak terdapat dalam pembatas. Jika karakter lebar seperti itu tidak ditemukan, string lebar tidak berisi token apa pun. Jadi pointer nol dikembalikan.
    Jika karakter lebar seperti itu ditemukan, dari situ fungsi mencari karakter lebar yang ada di pembatas. Jika pemisah tidak ditemukan, str hanya memiliki satu token. Jika pemisah ditemukan, itu diganti dengan L ' 0' dan penunjuk ke karakter berikut disimpan di * ptr. Terakhir, fungsi mengembalikan penunjuk ke awal token.
  2. Jika str adalah NULL:
    Panggilan ini dianggap sebagai panggilan berikutnya ke wcstok dan fungsi berlanjut dari tempat ia meninggalkan pemanggilan sebelumnya dengan * ptr yang sama.

Parameter wcstok ()

  • str: Pointer ke string lebar yang diakhiri null untuk membuat token.
  • delim: Pointer ke string lebar diakhiri null yang berisi pemisah.
  • ptr: Penunjuk ke penunjuk ke karakter lebar yang digunakan oleh wcstok untuk menyimpan status internalnya.

wcstok () Nilai kembali

  • Fungsi wcstok () mengembalikan penunjuk ke awal token berikutnya jika ada
  • Ia mengembalikan NULL jika tidak ada lagi token yang ditemukan.

Contoh: Bagaimana fungsi wcstok () bekerja?

 #include #include #include using namespace std; int main() ( setlocale(LC_ALL, "en_US.utf8"); wchar_t str() = L"parrot,owl,sparrow,pigeon,crow"; wchar_t delim() = L"u002c";// unicode for comma wchar_t *ptr; wcout << L"The tokens are:" << endl; wchar_t *token = wcstok(str,delim,&ptr); while (token) ( wcout << token << endl; token = wcstok(NULL,delim,&ptr); ) return 0; )

Saat Anda menjalankan program, hasilnya adalah:

 Tokennya adalah: burung beo burung hantu burung pipit burung merpati gagak

Artikel yang menarik...