Tentang String
Fungsi string memberi aplikasi sarana untuk menyalin, membandingkan, mengurutkan, memformat, dan mengonversi string karakter serta cara untuk menentukan jenis karakter setiap karakter dalam string. Semua fungsi string mendukung kumpulan karakter byte tunggal, byte ganda, dan Unicode jika set karakter ini didukung oleh sistem operasi tempat aplikasi dijalankan.
Peringatan Keamanan: Penggunaan fungsi string yang salah dapat menyebabkan masalah keamanan untuk aplikasi Anda. Biasanya ini melibatkan buffer overrun yang dapat memungkinkan penolakan serangan layanan terhadap aplikasi Anda atau injeksi kode yang dapat dieksekusi dari penyerang. Fungsi Strsafe memungkinkan penanganan string yang lebih aman dan direkomendasikan untuk keamanan yang lebih baik untuk aplikasi Anda. Untuk informasi selengkapnya tentang fungsi-fungsi ini, lihat Menggunakan Fungsi Strsafe.h.
Bagian ini membahas topik berikut.
Perbandingan dengan Fungsi String C Run-Time
Banyak fungsi string menduplikasi atau meningkatkan fungsi string yang akrab dari pustaka run-time (CRT) C standar. Banyak penyempurnaan memungkinkan fungsi string untuk bekerja dengan Unicode atau set karakter yang diperluas. Tabel berikut menunjukkan fungsi CRT, fungsi Windows (yang mendukung Unicode, tidak seperti fungsi CRT), dan fungsi StrSafe.
Fungsi String CRT | Fungsi String Windows | Fungsi StrSafe |
---|---|---|
strcat | lstrcat | |
strcmp | lstrcmp | (tidak ada fungsi yang setara) |
strcpy | lstrcpy | |
strlen | lstrlen |
Fungsi strlen , misalnya, selalu mengembalikan jumlah byte dalam string, tetapi fungsi lstrlen mengembalikan jumlah nilai TCHAR , yang mengacu pada byte untuk versi ANSI dari fungsi atau nilai WCHAR untuk versi Unicode.
Fungsi string berikut berbeda dari fungsi C standar seperti tolower dan toupper karena fungsi tersebut beroperasi pada karakter apa pun dalam set karakter. Dengan menggunakan fungsi CharLower , misalnya, aplikasi dapat mengonversi U huruf besar dengan umlaut (Ü) menjadi huruf kecil (ü). Untuk informasi selengkapnya tentang kumpulan karakter, lihat Kumpulan Karakter byte tunggal.
Fungsi | Deskripsi |
---|---|
CharLower | Mengonversi karakter atau string menjadi huruf kecil. |
CharLowerBuff | Mengonversi string karakter menjadi huruf kecil. |
CharNext | Berpindah ke karakter berikutnya dalam string. |
CharPrev | Berpindah ke karakter sebelumnya dalam string. |
CharUpper | Mengonversi karakter atau string menjadi huruf besar. |
CharUpperBuff | Mengonversi string menjadi huruf besar. |
Fungsi string berikut membuat penentuan tentang karakter berdasarkan semantik bahasa yang dipilih oleh pengguna. Fungsi-fungsi ini diaktifkan Unicode.
Fungsi | Deskripsi |
---|---|
IsCharAlpha | Menentukan apakah karakter adalah alfabet. |
IsCharAlphaNumeric | Menentukan apakah karakter bersifat alfanumerik. |
IsCharLower | Menentukan apakah karakter adalah huruf kecil. |
IsCharUpper | Menentukan apakah karakter adalah huruf besar. |
Tabel berikut ini memperlihatkan ekstensi Unicode ke fungsi run-time (CRT) C standar. Seperti disebutkan sebelumnya, fungsi StrSafe memungkinkan penanganan string yang lebih aman dan direkomendasikan untuk keamanan yang lebih baik untuk aplikasi Anda.
Fungsi CRT standar | Fungsi String | Fungsi StrSafe |
---|---|---|
Sprintf | wsprintf | |
vsprintf | wvsprintf |
Sumber Daya String
Aplikasi yang mempertahankan string karakter dalam sumber daya dapat diterjemahkan ke dalam bahasa baru dengan upaya minimum. Alih-alih mencari string dalam modul sumber, Anda cukup menerjemahkan string dalam file sumber daya dan menautkan ulang aplikasi. Selain itu, menggunakan sumber daya string menyederhanakan pembuatan versi Unicode dan non-Unicode aplikasi dari file sumber yang sama.
Fungsi LoadString memuat sumber daya string dari file yang dapat dieksekusi aplikasi. Fungsi FormatMessage memuat sumber daya string dan menginterpretasikan opsi pemformatan yang mungkin disematkan dalam string.
Sumber daya dalam bentuk biner disimpan dalam format Unicode. Saat memuat sumber daya, aplikasi dapat menggunakan versi Unicode dari fungsi sumber daya (LoadStringW, misalnya) untuk mendapatkan sumber daya sebagai data Unicode.
Untuk sumber daya string 16-bit, 255 karakter adalah panjang maksimum. Untuk sumber daya string 32-bit, 65535 karakter adalah panjang maksimum.