C ++ wcsxfrm () - C ++ Pustaka Standar

Fungsi wcsxfrm () di C ++ mengubah string lebar diakhiri null yang diberikan menjadi bentuk implementasi yang ditentukan.

Fungsi wcsxfrm () mengubah string lebar sedemikian rupa sehingga membandingkan dua string lebar yang ditransformasikan menggunakan fungsi wcscmp () menghasilkan hasil yang sama seperti membandingkan string lebar asli menggunakan fungsi wcscoll () di lokal C saat ini.

Misalnya, x dan y adalah dua string lebar. a dan b adalah dua string lebar yang dibentuk dengan mengubah x dan y masing-masing menggunakan fungsi wcsxfrm.

Kemudian,

 wcscmp (a, b) = wcscoll (x, y)

Ini didefinisikan dalam file header.

wcsxfrm () prototipe

 size_t wcsxfrm (wchar_t * dest, const wchar_t * src, hitungan size_t);

Fungsi wcsxfrm () mengonversi karakter lebar hitungan pertama dari string lebar yang ditunjukkan oleh src menjadi bentuk implementasi yang ditentukan dan hasilnya disimpan di lokasi memori yang ditunjuk oleh tujuan.

Perilaku fungsi ini tidak ditentukan jika:

  • ukuran tujuan kurang dari ukuran yang dibutuhkan.
  • dest dan src tumpang tindih.

Parameter wcsxfrm ()

  • dest: penunjuk ke larik tempat string lebar yang diubah disimpan.
  • src: pointer ke string lebar diakhiri null untuk diubah.
  • hitung: jumlah maksimum karakter lebar untuk dikonversi.

wcsxfrm () Nilai kembali

Fungsi wcsxfrm () mengembalikan jumlah karakter lebar yang ditransformasi, tidak termasuk karakter lebar null yang diakhiri L ' 0'.

Contoh: Bagaimana fungsi wcsxfrm () bekerja?

 #include #include #include using namespace std; int main() ( setlocale(LC_COLLATE, "cs_CZ.UTF-8"); const wchar_t* s1 = L"u0068u0072u006eu0065u0063"; const wchar_t* s2 = L"u0063u0068u0072u0074"; wchar_t t1(20), t2(20); cout << "wcscoll returned " << wcscoll(s1,s2) << endl; cout << "Before transformation, " << "wcscmp returned " << wcscmp(s1,s2) << endl; wcsxfrm(t1,s1,10); wcsxfrm(t2,s2,10); cout << "After transformation, " << "wcscmp returned " << wcscmp(t1,t2) << endl; return 0; )

Saat Anda menjalankan program, hasilnya adalah:

 wcscoll mengembalikan -1 Sebelum transformasi, wcscmp mengembalikan 1 Setelah transformasi, wcscmp mengembalikan -1

Artikel yang menarik...