Semua yang Perlu Anda Ketahui Tentang String di C ++



Artikel ini akan memberi Anda pengetahuan mendetail dan komprehensif tentang Strings di C ++ dan juga akan memberikan contoh berbagai operasi.

Syarat berarti urutan karakter yang teratur. Urutan karakter dapat direpresentasikan menggunakan objek kelas di C ++. Kelas yang memberikan definisi untuk melakukannya disebut kelas String. Kelas string menyimpan karakter sebagai urutan byte dengan fungsionalitas yang memungkinkan akses ke karakter byte tunggal. Di C ++, pembatas yang melingkupinya adalah tanda kutip ganda. Dalam artikel “String dalam C ++” ini, saya akan membahas topik-topik berikut:

Perbedaan Kelas String dan Karakter Array

Kelas string Array Karakter
Kelas string adalah kelas yang mendefinisikan objek yang dapat direpresentasikan sebagai aliran karakterArray karakter hanyalah sebuah larik karakter.
Dalam kasus string, memori dialokasikan secara dinamis sehingga lebih banyak memori dapat dialokasikan pada waktu proses sesuai permintaanUkuran larik karakter harus dialokasikan secara statis sehingga lebih banyak memori tidak dapat dialokasikan pada waktu proses jika diperlukan
Kelas string mendefinisikan sejumlah fungsi yang memungkinkan operasi berjenis pada string.Array karakter tidak menawarkan banyak fungsi built-in untuk memanipulasi string
String lebih lambat jika dibandingkan dengan implementasi daripada array karakter.Implementasi array karakter adalah lebih cepat.

Deklarasikan dan Inisialisasi Strings di C ++

strings-in-c++Inisialisasi string di C ++ cukup sederhana !. Kami dapat menggunakan salah satu dari metode berikut.





menggunakan namespace std string std_string

atau

std :: string std_string
#include using namespace std int main () {char ch [12] = {'H', 'e', ​​'l', 'l', 'o', '', 'b', 'y', '' , 'c', 'h', ''} string st = 'Halo oleh st' std :: string std_st = 'Halo oleh std_st' cout<< ch << endl cout << st << endl cout << std_st << endl return 0 }

Keluaran:



Halo oleh ch Halo oleh st Halo oleh std_st

Dalam contoh ini, kami telah menunjukkan karakter array (ch) dan string class (st dan std_st) metode inisialisasi. Pertama, kami menggunakan metode larik karakter dengan mendefinisikan larik karakter ch [12] yang berisi 12 elemen dan diakhiri dengan karakter nol. Di bagian kedua, kami menggunakan metode kelas string.

Operasi pada Strings di C ++

Keuntungan menggunakan kelas string adalah ada beberapa fungsi bawaan di C ++ untuk memanipulasinya. Ini membuat pemrograman menjadi mudah dan efektif. Mari kita gunakan fungsi manipulasi string penting tertentu dan memahaminya dengan melihat beberapa contoh.

Ukuran String: Kedua metode size () dan length () dapat digunakan untuk mengembalikan ukuran objek.



biaya<< st.length() <

Keluaran:

11 11

Penggabungan String: Kita dapat menggabungkan dua atau lebih string hanya dengan menggunakan + operator di antara keduanya

apa itu serialisasi di java
string new_string = st + 'dan' + std_st cout<< new_string <

Keluaran:

Halo oleh st dan Halo oleh std_st

Menambahkan String: Fungsi anggota kelas .append (string) dapat digunakan untuk menggabungkan dan menambahkan string di lokasi karakter tertentu dalam string. Jika seorang programmer meletakkan str.append (str1, p, n), maka itu berarti n jumlah karakter dari posisi p dalam string str1 akan ditambahkan ke ujung str.

string str = 'Saya menikmati belajar' string str1 = 'Python, C ++, atau C' str.append (str1, 8, 3) cout<< str << endl

Keluaran:

Saya menikmati belajar C ++

Mencari string: Kita bisa menggunakan fungsi anggota find () untuk menemukan kemunculan pertama string di dalam string lain. find () akan mencari jarum string di dalam tumpukan jerami string mulai dari posisi pos dan mengembalikan posisi kemunculan jarum pertama. Fungsi rfind () bekerja serupa, kecuali ia mengembalikan kemunculan terakhir dari string yang diteruskan.

string haystack = 'Halo Dunia!' string needle = 'o' cout<< haystack.find(needle)<

Keluaran:

stack dan heap di java
4 4 7 4294967295

Perintah cout pertama hanya akan mencetak '4' yang merupakan indeks kemunculan pertama 'o' dalam string tumpukan jerami. Jika kita menginginkan 'o' di 'World', kita perlu memodifikasi 'pos' agar melewati kejadian pertama. haystack.find (needle, 4) akan kembali menampilkan 4, sedangkan haystack.find (needle, 5) akan memberikan 7. Jika substring tidak ditemukan, find () mengembalikan std :: string :: npos.

Npos adalah nilai khusus yang sama dengan nilai maksimum yang dapat diwakili oleh tipe_ukuran_ukuran. Ini dia 4294967295. Umumnya, ini digunakan baik sebagai indikator akhir string oleh fungsi yang mengharapkan indeks string atau sebagai indikator kesalahan oleh fungsi yang mengembalikan indeks string.

Kode sederhana ini mencari string untuk semua kemunculan 'C ++' di str2 dan mencetak posisinya:

string str2 = 'C ++ adalah bahasa pemrograman berorientasi objek dan mencakup kelas, pewarisan, polimorfisme, abstraksi data, dan enkapsulasi. C ++ memungkinkan penanganan pengecualian, dan kelebihan beban fungsi yang tidak dimungkinkan di C.C ++ adalah bahasa yang kuat, efisien, dan cepat. ' untuk (string :: size_type i = 0, tfind (tfind = wikistr.find ('C ++', i))! = string :: npos i = tfind + 1) {std :: cout<< 'Found occurrence of 'C++' at position ' << tfind << std::endl }

Keluaran:

Ditemukan kejadian 'C ++' pada posisi 0 Ditemukan kejadian 'C ++' pada posisi 132 Ditemukan kejadian 'C ++' pada posisi 217
#include using namespace std class base {public: void fun_1 () {cout<< 'base class function 1n' } virtual void fun_2() { cout << 'base class function 2n' } virtual void fun_3() { cout << 'base class function 3n' } virtual void fun_4() { cout << 'base class function 4n' } } class derived : public base { public: void fun_1() { cout << 'derived class function 1n' } void fun_2() { cout << 'derived class function 2n' } void fun_4(int x) { cout fun_2 () // Late binding (RTP) ptr-> fun_3 () // Late binding (RTP) ptr-> fun_4 () // Pengikatan awal tetapi pemanggilan fungsi ini // ilegal (menghasilkan kesalahan) karena pointer // adalah dari tipe dasar dan fungsinya adalah // turunan kelas // p-> fun_4 (5)}

Keluaran:

fungsi kelas dasar 1 fungsi kelas turunan 2 fungsi kelas dasar 3 fungsi kelas dasar 4

Dengan ini, kami mengakhiri artikel ini di Strings in C ++. Saya harap Anda mendapat pemahaman tentang berbagai Operasi yang dapat dilakukan di atasnya. Jika Anda ingin mempelajari lebih lanjut, lihat Pelatihan Java oleh Edureka, perusahaan pembelajaran online tepercaya. Edureka's Pelatihan dan kursus sertifikasi dirancang untuk melatih Anda baik konsep inti dan lanjutan Java bersama dengan berbagai kerangka kerja Java seperti Hibernate & Spring.

Ada pertanyaan untuk kami? Harap sebutkan di bagian komentar blog ini dan kami akan menghubungi Anda kembali secepatnya.