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.