Fungsi GetStringTypeW (stringapiset.h)
Mengambil informasi jenis karakter untuk karakter dalam string sumber Unicode yang ditentukan. Untuk setiap karakter dalam string, fungsi mengatur satu atau beberapa bit dalam elemen 16-bit yang sesuai dari array output. Setiap bit mengidentifikasi jenis karakter tertentu, misalnya, huruf, digit, atau tidak keduanya.
Sintaks
BOOL GetStringTypeW(
[in] DWORD dwInfoType,
[in] _In_NLS_string_(cchSrc)LPCWCH lpSrcStr,
[in] int cchSrc,
[out] LPWORD lpCharType
);
Parameter
[in] dwInfoType
Bendera yang menentukan informasi jenis karakter yang akan diambil. Parameter ini dapat memiliki nilai berikut. Jenis karakter dibagi menjadi tingkat yang berbeda seperti yang dijelaskan di bagian Keterangan.
Bendera | Makna |
---|---|
|
Mengambil informasi jenis karakter. |
|
Ambil informasi tata letak dua arah. |
|
Mengambil informasi pemrosesan teks. |
[in] lpSrcStr
Arahkan ke string Unicode untuk mengambil jenis karakter. String diasumsikan null-dihentikan jika cchSrc diatur ke nilai negatif apa pun.
[in] cchSrc
Ukuran, dalam karakter, dari string yang ditunjukkan oleh lpSrcStr. Jika ukuran menyertakan karakter null yang mengakhiri, fungsi mengambil informasi jenis karakter untuk karakter tersebut. Jika aplikasi mengatur ukuran ke bilangan bulat negatif, string sumber diasumsikan dihentikan null dan fungsi menghitung ukuran secara otomatis dengan karakter tambahan untuk penghentian null.
[out] lpCharType
Penunjuk ke array nilai 16-bit. Panjang array ini harus cukup besar untuk menerima satu nilai 16-bit untuk setiap karakter dalam string sumber. Jika cchSrc bukan angka negatif, lpCharType harus menjadi array kata dengan elemen cchSrc . Jika cchSrc diatur ke angka negatif, lpCharType adalah array kata dengan elemen lpSrcStr + 1. Saat fungsi kembali, array ini berisi satu kata yang sesuai dengan setiap karakter dalam string sumber.
Mengembalikan nilai
Mengembalikan nilai bukan nol jika berhasil, atau 0 sebaliknya. Untuk mendapatkan informasi kesalahan yang diperluas, aplikasi dapat memanggil GetLastError, yang dapat mengembalikan salah satu kode kesalahan berikut:
- ERROR_INVALID_FLAGS. Nilai yang diberikan untuk bendera tidak valid.
- ERROR_INVALID_PARAMETER. Salah satu nilai parameter tidak valid.
Keterangan
Untuk gambaran umum penggunaan fungsi string, lihat String.
Nilai parameter lpSrcStr dan lpCharType tidak boleh sama. Jika sama, fungsi gagal dengan ERROR_INVALID_PARAMETER.
Parameter Lokal yang digunakan oleh fungsi GetStringTypeA yang sesuai tidak digunakan oleh fungsi ini. Karena perbedaan parameter, aplikasi tidak dapat secara otomatis memanggil versi ANSI atau Unicode yang tepat dari fungsi GetStringType* melalui penggunaan sakelar UNICODE #define. Aplikasi dapat menghindari batasan ini dengan menggunakan GetStringTypeEx, yang merupakan fungsi yang direkomendasikan.
Jenis Karakter yang Didukung
Bit jenis karakter dibagi menjadi beberapa tingkat. Informasi untuk satu tingkat dapat diambil dengan satu panggilan ke fungsi ini. Setiap tingkat dibatasi hingga 16 bit informasi sehingga fungsi pemetaan lainnya, yang dibatasi hingga 16 bit representasi per karakter, juga dapat mengembalikan informasi jenis karakter.
Ctype 1
Jenis-jenis ini mendukung fungsi pengetikan karakter ANSI C dan POSIX (LC_CTYPE). Bitwise-OR dari nilai-nilai ini diambil dalam array dalam buffer output saat dwInfoType diatur ke CT_CTYPE1. Untuk lokal DBCS, atribut jenis berlaku untuk karakter sempit dan karakter lebar. Karakter hiragana dan katakana Jepang, dan karakter ideograf kanji semuanya memiliki atribut C1_ALPHA.
Nama | Nilai | Makna |
---|---|---|
C1_UPPER | 0x0001 | Uppercase |
C1_LOWER | 0x0002 | Lowercase |
C1_DIGIT | 0x0004 | Digit desimal |
C1_SPACE | 0x0008 | Karakter spasi |
C1_PUNCT | 0x0010 | Tanda baca |
C1_CNTRL | 0x0020 | Karakter kontrol |
C1_BLANK | 0x0040 | Karakter kosong |
C1_XDIGIT | 0x0080 | Digit heksadesimal |
C1_ALPHA | 0x0100 | Setiap karakter linguistik: alfabet, suku kata, atau ideografis |
C1_DEFINED | 0x0200 | Karakter yang ditentukan, tetapi bukan salah satu jenis C1_* lainnya |
Jenis karakter berikut adalah konstanta atau dapat dihitung dari jenis dasar dan tidak perlu didukung oleh fungsi ini.
Jenis | Deskripsi |
---|---|
Alfanumerik | Karakter dan digit alfabet (C1_ALPHA dan C1_DIGIT) |
Dicetak | Karakter grafik dan kosong (semua jenis C1_* kecuali C1_CNTRL) |
Ctype 2
Jenis-jenis ini mendukung tata letak teks Unicode yang tepat. Untuk lokal DBCS, jenis karakter berlaku untuk karakter sempit dan lebar. Atribut arah ditetapkan sehingga algoritma tata letak dua arah yang distandarkan oleh Unicode menghasilkan hasil yang akurat. Jenis-jenis ini saling eksklusif. Untuk informasi selengkapnya tentang penggunaan atribut ini, lihat Standar Unicode.
Nama | Nilai | Makna |
---|---|---|
Kuat | ||
C2_LEFTTORIGHT | 0x0001 | Kiri ke kanan |
C2_RIGHTTOLEFT | 0x0002 | Kanan ke kiri |
Weak | ||
C2_EUROPENUMBER | 0x0003 | Nomor Eropa, digit Eropa |
C2_EUROPESEPARATOR | 0x0004 | Pemisah numerik Eropa |
C2_EUROPETERMINATOR | 0x0005 | Terminator numerik Eropa |
C2_ARABICNUMBER | 0x0006 | Nomor Arab |
C2_COMMONSEPARATOR | 0x0007 | Pemisah numerik umum |
netral | ||
C2_BLOCKSEPARATOR | 0x0008 | Pemisah blok |
C2_SEGMENTSEPARATOR | 0x0009 | Pemisah segmen |
C2_WHITESPACE | 0x000A | Spasi kosong |
C2_OTHERNEUTRAL | 0x000B | Netral lainnya |
Tidak berlaku | ||
C2_NOTAPPLICABLE | 0x0000 | Tidak ada arah implisit (misalnya, kode kontrol) |
Ctype 3
Jenis-jenis ini dimaksudkan untuk menjadi tempat penampung untuk ekstensi ke jenis POSIX yang diperlukan untuk pemrosesan teks umum atau untuk fungsi pustaka C standar. Bitwise-OR dari nilai-nilai ini diambil ketika dwInfoType diatur ke CT_CTYPE3. Untuk lokal DBCS, atribut Ctype 3 berlaku untuk karakter sempit dan karakter lebar. Karakter hiragana dan katakana Jepang, dan karakter ideograf kanji semuanya memiliki atribut C3_ALPHA.
Nama | Nilai | Makna |
---|---|---|
C3_NONSPACING | 0x0001 | Tanda tidak terpakai |
C3_DIACRITIC | 0x0002 | Tanda nonspacing diakritik |
C3_VOWELMARK | 0x0004 | Tanda batalkan pengiriman vokal |
C3_SYMBOL | 0x0008 | Simbol |
C3_KATAKANA | 0x0010 | Karakter Katakana |
C3_HIRAGANA | 0x0020 | Karakter Hiragana |
C3_HALFWIDTH | 0x0040 | Karakter lebar setengah (sempit) |
C3_FULLWIDTH | 0x0080 | Karakter lebar penuh (lebar) |
C3_IDEOGRAPH | 0x0100 | Karakter ideografis |
C3_KASHIDA | 0x0200 | Karakter kashida arab |
C3_LEXICAL | 0x0400 | Tanda baca yang dihitung sebagai bagian dari kata (kashida, tanda hubung, indikator ordinal feminin/maskulin, tanda sama dengan, dan sebagainya) |
C3_ALPHA | 0x8000 | Semua karakter linguistik (alfabet, suku kata, dan ideografis) |
C3_HIGHSURROGATE | 0x0800 | Windows Vista: Unit kode pengganti tinggi |
C3_LOWSURROGATE | 0x1000 | Windows Vista: Unit kode pengganti rendah |
Tidak berlaku | ||
C3_NOTAPPLICABLE | 0x0000 | Tidak berlaku |
C3_HIGHSURROGATE dan C3_LOWSURROGATE hanya terdaftar untuk kelengkapan, dan tidak boleh diberikan ke fungsi ini. Mereka hanya relevan untuk Unicode.
Dimulai dengan Windows 8: GetStringTypeW dideklarasikan dalam Stringapiset.h. Sebelum Windows 8, itu dinyatakan di Winnls.h.
Persyaratan
Persyaratan | Nilai |
---|---|
Klien minimum yang didukung | Windows 2000 Professional [aplikasi desktop | Aplikasi UWP] |
Server minimum yang didukung | Windows 2000 Server [aplikasi desktop | Aplikasi UWP] |
Target Platform | Windows |
Header | stringapiset.h (termasuk Windows.h) |
Pustaka | Kernel32.lib |
DLL | Kernel32.dll |
Lihat juga
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk