MFC - Senar
Stringsadalah objek yang mewakili urutan karakter. String karakter gaya-C berasal dari bahasa C dan terus didukung dalam C ++.
String ini sebenarnya adalah larik karakter satu dimensi yang diakhiri dengan karakter nol '\ 0'.
String yang diakhiri dengan null berisi karakter yang terdiri dari string yang diikuti dengan null.
Berikut adalah contoh sederhana dari array karakter.
char word[12] = { 'H', 'e', 'l', 'l', 'o', ' ', 'W', 'o', 'r', 'l', 'd', '\0' };
Berikut adalah cara lain untuk merepresentasikannya.
char word[] = "Hello, World";
Pustaka Microsoft Foundation Class (MFC) menyediakan kelas untuk memanipulasi string yang disebut CString. Berikut adalah beberapa fitur penting CString.
CString tidak memiliki kelas dasar.
Objek CString terdiri dari urutan karakter dengan panjang variabel.
CString menyediakan fungsi dan operator menggunakan sintaks yang mirip dengan Basic.
Operator penggabungan dan perbandingan, bersama dengan manajemen memori yang disederhanakan, membuat objek CString lebih mudah digunakan daripada array karakter biasa.
Berikut adalah konstruktor CString.
Sr.No. | Metode & Deskripsi |
---|---|
1 | CString Membangun objek CString dengan berbagai cara |
Berikut adalah daftar Metode Array -
Sr.No. | Metode & Deskripsi |
---|---|
1 | GetLength Mengembalikan jumlah karakter dalam objek CString. |
2 | IsEmpty Menguji apakah objek CString tidak berisi karakter. |
3 | Empty Memaksa string memiliki panjang 0. |
4 | GetAt Mengembalikan karakter pada posisi tertentu. |
5 | SetAt Menetapkan karakter pada posisi tertentu. |
Berikut adalah daftar Metode Perbandingan -
Sr.No. | Metode & Deskripsi |
---|---|
1 | Compare Membandingkan dua string (case sensitive). |
2 | CompareNoCase Membandingkan dua string (case insensitive). |
Berikut adalah daftar Metode Ekstraksi -
Sr.No. | Metode & Deskripsi |
---|---|
1 | Mid Mengekstrak bagian tengah string (seperti fungsi Basic MID $). |
2 | Left Mengekstrak bagian kiri string (seperti fungsi Basic LEFT $). |
3 | Right Mengekstrak bagian kanan string (seperti fungsi $ KANAN Dasar). |
4 | SpanIncluding Mengekstrak karakter dari string, yang ada di kumpulan karakter tertentu. |
5 | SpanExcluding Mengekstrak karakter dari string yang tidak ada dalam kumpulan karakter yang diberikan. |
Berikut adalah daftar Metode Konversi.
Sr.No. | Metode & Deskripsi |
---|---|
1 | MakeUpper Mengonversi semua karakter dalam string ini menjadi karakter huruf besar. |
2 | MakeLower Mengonversi semua karakter dalam string ini menjadi karakter huruf kecil. |
3 | MakeReverse Membalik karakter dalam string ini. |
4 | Format Format string seperti yang dilakukan sprintf. |
5 | TrimLeft Pangkas karakter spasi putih utama dari string. |
6 | TrimRight Pangkas karakter spasi kosong di belakang dari string. |
Berikut adalah daftar Metode Pencarian.
Sr.No. | Metode & Deskripsi |
---|---|
1 | Find Menemukan karakter atau substring di dalam string yang lebih besar. |
2 | ReverseFind Menemukan karakter di dalam string yang lebih besar; dimulai dari akhir. |
3 | FindOneOf Menemukan karakter pertama yang cocok dari satu set. |
Berikut adalah daftar Metode Akses Buffer.
Sr.No. | Metode & Deskripsi |
---|---|
1 | GetBuffer Mengembalikan pointer ke karakter di CString. |
2 | GetBufferSetLength Mengembalikan pointer ke karakter di CString, memotong ke panjang yang ditentukan. |
3 | ReleaseBuffer Merilis kontrol buffer yang dikembalikan oleh GetBuffer |
4 | FreeExtra Menghapus overhead apa pun dari objek string ini dengan membebaskan memori tambahan yang sebelumnya dialokasikan ke string. |
5 | LockBuffer Menonaktifkan penghitungan referensi dan melindungi string di buffer. |
6 | UnlockBuffer Mengaktifkan penghitungan referensi dan melepaskan string di buffer. |
Berikut adalah daftar Metode Khusus Windows.
Sr.No. | Metode & Deskripsi |
---|---|
1 | AllocSysString Mengalokasikan BSTR dari data CString. |
2 | SetSysString Set objek BSTR yang ada dengan data dari objek CString. |
3 | LoadString Memuat objek CString yang ada dari sumber daya Windows CE. |
Berikut adalah operasi yang berbeda pada objek CString -
Buat String
Anda dapat membuat string dengan menggunakan string literal atau membuat instance kelas CString.
BOOL CMFCStringDemoDlg::OnInitDialog() {
CDialogEx::OnInitDialog();
// Set the icon for this dialog. The framework does this automatically
// when the application's main window is not a dialog
SetIcon(m_hIcon, TRUE); // Set big icon
SetIcon(m_hIcon, FALSE); // Set small icon
CString string1 = _T("This is a string1");
CString string2("This is a string2");
m_strText.Append(string1 + L"\n");
m_strText.Append(string2);
UpdateData(FALSE);
return TRUE; // return TRUE unless you set the focus to a control
}
Ketika kode di atas dikompilasi dan dijalankan, Anda akan melihat output berikut.
String Kosong
Anda bisa membuat string kosong dengan menggunakan literal string kosong atau dengan menggunakan metode CString :: Empty (). Anda juga dapat memeriksa apakah sebuah string kosong atau tidak menggunakan properti Boolean isEmpty.
BOOL CMFCStringDemoDlg::OnInitDialog() {
CDialogEx::OnInitDialog();
// Set the icon for this dialog. The framework does this automatically
// when the application's main window is not a dialog
SetIcon(m_hIcon, TRUE); // Set big icon
SetIcon(m_hIcon, FALSE); // Set small icon
CString string1 = _T("");
CString string2;
string2.Empty();
if(string1.IsEmpty())
m_strText.Append(L"String1 is empty\n");
else
m_strText.Append(string1 + L"\n");
if(string2.IsEmpty())
m_strText.Append(L"String2 is empty");
else
m_strText.Append(string2);
UpdateData(FALSE);
return TRUE; // return TRUE unless you set the focus to a control
}
Ketika kode di atas dikompilasi dan dijalankan Anda akan melihat output berikut.
Penggabungan String
Untuk menggabungkan dua atau lebih string, Anda bisa menggunakan + operator untuk menggabungkan dua string atau metode CString :: Append ().
BOOL CMFCStringDemoDlg::OnInitDialog() {
CDialogEx::OnInitDialog();
// Set the icon for this dialog. The framework does this automatically
// when the application's main window is not a dialog
SetIcon(m_hIcon, TRUE); // Set big icon
SetIcon(m_hIcon, FALSE); // Set small icon
//To concatenate two CString objects
CString s1 = _T("This "); // Cascading concatenation
s1 += _T("is a ");
CString s2 = _T("test");
CString message = s1;
message.Append(_T("big ") + s2);
// Message contains "This is a big test".
m_strText = L"message: " + message;
UpdateData(FALSE);
return TRUE; // return TRUE unless you set the focus to a control
}
Ketika kode di atas dikompilasi dan dijalankan Anda akan melihat output berikut.
Panjang String
Untuk menemukan panjang string Anda bisa menggunakan metode CString :: GetLength (), yang mengembalikan jumlah karakter dalam objek CString.
BOOL CMFCStringDemoDlg::OnInitDialog() {
CDialogEx::OnInitDialog();
// Set the icon for this dialog. The framework does this automatically
// when the application's main window is not a dialog
SetIcon(m_hIcon, TRUE); // Set big icon
SetIcon(m_hIcon, FALSE); // Set small icon
CString string1 = _T("This is string 1");
int length = string1.GetLength();
CString strLen;
strLen.Format(L"\nString1 contains %d characters", length);
m_strText = string1 + strLen;
UpdateData(FALSE);
return TRUE; // return TRUE unless you set the focus to a control
}
Ketika kode di atas dikompilasi dan dijalankan Anda akan melihat output berikut.
Perbandingan String
Untuk membandingkan dua variabel string Anda dapat menggunakan == operator
BOOL CMFCStringDemoDlg::OnInitDialog() {
CDialogEx::OnInitDialog();
// Set the icon for this dialog. The framework does this automatically
// when the application's main window is not a dialog
SetIcon(m_hIcon, TRUE); // Set big icon
SetIcon(m_hIcon, FALSE); // Set small icon
CString string1 = _T("Hello");
CString string2 = _T("World");
CString string3 = _T("MFC Tutorial");
CString string4 = _T("MFC Tutorial");
if (string1 == string2)
m_strText = "string1 and string1 are same\n";
else
m_strText = "string1 and string1 are not same\n";
if (string3 == string4)
m_strText += "string3 and string4 are same";
else
m_strText += "string3 and string4 are not same";
UpdateData(FALSE);
return TRUE; // return TRUE unless you set the focus to a control
}
Ketika kode di atas dikompilasi dan dijalankan Anda akan melihat output berikut.