Bagikan melalui


Manajemen Data String

Visual C++ menyediakan beberapa cara untuk mengelola data string:

  • Manipulasi String untuk bekerja dengan string bergaya C NULLyang dihentikan

  • Fungsi API Win32 untuk mengelola string

  • Kelas MFCCStringT, yang menyediakan objek string yang fleksibel dan dapat diubah namanya

  • Kelas CStringTKelas, yang menyediakan objek string independen MFC dengan fungsionalitas yang sama denganCString

Hampir semua program bekerja dengan data string. Kelas MFC CString sering kali menjadi solusi terbaik untuk penanganan string yang fleksibel. Dimulai dengan versi 7.0, CString dapat digunakan dalam program independen MFC atau MFC. Pustaka run-time dan CString string dukungan yang berisi karakter multibyte (lebar), seperti dalam pemrograman Unicode atau MBCS.

Artikel ini menjelaskan layanan tujuan umum yang disediakan pustaka kelas terkait dengan manipulasi string. Topik yang dibahas dalam artikel ini meliputi:

Kelas Kelas CStringT menyediakan dukungan untuk memanipulasi string. Ini dimaksudkan untuk mengganti dan memperluas fungsionalitas yang biasanya disediakan oleh paket string pustaka run-time C. Kelas ini CString menyediakan fungsi dan operator anggota untuk penanganan string yang disederhanakan, mirip dengan yang ditemukan di Dasar. Kelas ini juga menyediakan konstruktor dan operator untuk membangun, menetapkan, dan membandingkan CStringjenis data string C++ standar dan s dan standar. Karena CString tidak berasal dari CObject, Anda dapat menggunakan CString objek secara independen dari sebagian besar Microsoft Foundation Class Library (MFC).

CString objek mengikuti "semantik nilai." Objek CString mewakili nilai unik. Anggap sebagai string aktual CString , bukan sebagai penunjuk ke string.

Objek CString mewakili urutan jumlah karakter variabel. CString objek dapat dianggap sebagai array karakter.

Unicode dan MBCS Menyediakan Portabilitas

Dengan MFC versi 3.0 dan yang lebih baru, MFC, termasuk CString, diaktifkan untuk set karakter Unicode dan multibyte (MBCS). Dukungan ini memudahkan Anda untuk menulis aplikasi portabel yang dapat Anda buat untuk karakter Unicode atau ANSI. Untuk mengaktifkan portabilitas ini, setiap karakter dalam CString objek berjenis TCHAR, yang didefinisikan seolah-olah wchar_t Anda menentukan simbol _UNICODE saat Anda membangun aplikasi Anda, atau seolah-olah char tidak. Karakter wchar_t memiliki lebar 16 bit. MBCS diaktifkan jika Anda membangun dengan simbol _MBCS yang ditentukan. MFC sendiri dibangun dengan _MBCS simbol (untuk pustaka NAFX) atau _UNICODE simbol (untuk pustaka UAFX) yang ditentukan.

Catatan

Contoh CString dalam artikel ini dan yang menyertainya pada string menunjukkan string harfiah yang diformat dengan benar untuk portabilitas Unicode, menggunakan _T makro, yang menerjemahkan string harfiah ke formulir:

L"literal string"

Catatan

yang diperlakukan pengkompilasi sebagai string Unicode. Misalnya, kode berikut:

CString strName = _T("Name");   

Catatan

diterjemahkan sebagai string Unicode jika _UNICODE didefinisikan atau sebagai string ANSI jika tidak. Untuk informasi selengkapnya, lihat artikel Dukungan Unicode dan Multibyte Character Set (MBCS).

Objek CString dapat menyimpan hingga INT_MAX (2.147.483.647) karakter. Jenis TCHAR data digunakan untuk mendapatkan atau mengatur karakter individual di dalam CString objek. Tidak seperti array karakter, CString kelas memiliki kemampuan alokasi memori bawaan. Ini memungkinkan CString objek untuk tumbuh secara otomatis sesuai kebutuhan (yaitu, Anda tidak perlu khawatir tentang menumbuhkan CString objek agar pas dengan string yang lebih panjang).

CStrings dan const char Pointer

Objek CString juga dapat bertindak seperti string gaya C harfiah PCXSTR(, yang sama seperti const char* jika tidak di bawah Unicode). Operator CSimpleStringT::operator PCXSTR konversi memungkinkan CString objek diganti dengan bebas untuk penunjuk karakter dalam panggilan fungsi. CString(LPCWSTR pszSrc) Konstruktor memungkinkan penunjuk karakter diganti dengan CString objek.

Tidak ada upaya yang dilakukan untuk melipat CString objek. Jika Anda membuat dua CString objek yang berisi Chicago, misalnya, karakter di Chicago disimpan di dua tempat. (Ini mungkin tidak benar tentang versi MFC di masa mendatang, jadi Anda tidak boleh bergantung padanya.)

Catatan

CSimpleStringT::GetBuffer Gunakan fungsi anggota dan CSimpleStringT::ReleaseBuffer saat Anda perlu langsung mengakses CString sebagai penunjuk nonkonstant ke karakter.

Catatan

CStringT::AllocSysString Gunakan fungsi anggota dan CStringT::SetSysString untuk mengalokasikan dan mengatur BSTR objek yang digunakan dalam Automation (sebelumnya dikenal sebagai OLE Automation).

Catatan

Jika memungkinkan, alokasikan CString objek pada bingkai daripada pada timbunan. Ini menyimpan memori dan menyederhanakan pengeluaran parameter.

Kelas CString ini tidak diimplementasikan sebagai kelas koleksi Pustaka Kelas Microsoft Foundation, meskipun CString objek pasti dapat disimpan sebagai elemen dalam koleksi.

CString Penghitungan Referensi

Pada MFC versi 4.0, ketika CStringT objek Kelas disalin, MFC meningkatkan jumlah referensi daripada menyalin data. Hal ini membuat meneruskan parameter berdasarkan nilai dan mengembalikan CString objek berdasarkan nilai lebih efisien. Operasi ini menyebabkan konstruktor salinan dipanggil, kadang-kadang lebih dari sekali. Meningkatkan jumlah referensi mengurangi overhead untuk operasi umum ini dan membuat penggunaan CString opsi yang lebih menarik.

Saat setiap salinan dihancurkan, jumlah referensi dalam objek asli diderementasikan. Objek asli CString tidak dihancurkan sampai jumlah referensinya berkurang menjadi nol.

Anda dapat menggunakan CString fungsi CSimpleStringT::LockBuffer anggota dan CSimpleStringT::UnlockBuffer untuk menonaktifkan atau mengaktifkan penghitungan referensi.

Lihat juga

Topik MFC Umum