Semua yang Anda Perlu Tahu Mengenai Rentetan dalam C ++



Artikel ini akan memberi anda pengetahuan terperinci dan komprehensif mengenai Strings dalam C ++ dan juga akan memberikan contoh pelbagai operasi.

Istilah bermaksud urutan watak yang tersusun. Urutan watak boleh ditunjukkan menggunakan objek kelas dalam C ++. Kelas yang memberikan definisi untuk melakukannya dipanggil kelas String. String class menyimpan watak sebagai urutan bait dengan fungsi membenarkan akses ke watak single-byte. Dalam C ++ pembatas terlampir adalah tanda petik dua kali. Dalam artikel 'Strings in C ++' ini saya akan membincangkan topik berikut:

String Class and Character Array Perbezaan

Kelas tali Susunan watak
String class adalah kelas yang mentakrifkan objek yang dapat diwakili sebagai aliran watakSusunan watak hanyalah susunan watak.
Dalam kes rentetan, memori dialokasikan secara dinamik sehingga lebih banyak memori dapat dialokasikan pada waktu berjalan berdasarkan permintaanUkuran array watak harus dialokasikan secara statik sehingga lebih banyak memori tidak dapat dialokasikan pada waktu berjalan jika diperlukan
String class mendefinisikan sebilangan fungsi yang membolehkan operasi manifold pada rentetan.Susunan watak tidak menawarkan banyak fungsi bawaan untuk memanipulasi rentetan
String lebih perlahan jika dibandingkan dengan implementasi daripada array watak.Pelaksanaan array watak adalah lebih pantas.

Menyatakan dan Memulakan Rentetan dalam C ++

strings-in-c++Permulaan rentetan dalam C ++ cukup mudah !. Kita boleh menggunakan salah satu kaedah berikut.





menggunakan namespace std string std_string

atau

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

Pengeluaran:



Hello oleh ch Hello oleh st Hello oleh std_st

Dalam contoh ini, kami telah menunjukkan kedua-dua watak watak (ch) dan string clkaedah inisialisasi pantat (st dan std_st). Pertama, kami menggunakan kaedah array karakter dengan menentukan array karakter ch [12] yang mengandungi 12 elemen dan diakhiri dengan watak null. Pada bahagian kedua, kami menggunakan kaedah kelas rentetan.

java kepada kekuatan

Operasi pada Rentetan di C ++

Kelebihan menggunakan kelas rentetan ialah terdapat beberapa fungsi terbina dalam C ++ untuk memanipulasinya. Ini menjadikan pengaturcaraan mudah dan berkesan. Mari kita gunakan fungsi manipulasi rentetan penting tertentu dan memahaminya dengan melihat beberapa contoh.

Ukuran tali: Kedua-dua kaedah ukuran () dan panjang () dapat digunakan untuk mengembalikan ukuran objek.



kos<< st.length() <

Pengeluaran:

11 11

Gabungan Rentetan: Kami dapat menggabungkan dua atau lebih rentetan hanya dengan menggunakan + operator di antara mereka

string new_string = st + 'dan' + std_st cout<< new_string <

Pengeluaran:

Hello oleh st dan Hello oleh std_st

Senaraian: Fungsi anggota kelas .append (string) dapat digunakan untuk menggabungkan dan menambahkan tali pada lokasi watak tertentu dalam rentetan. Sekiranya pengaturcara meletakkan str.append (str1, p, n), maka ini bermaksud bahawa n bilangan aksara dari kedudukan p dalam string str1 akan ditambahkan ke hujung str.

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

Pengeluaran:

Saya seronok belajar C ++

Mencari rentetan: Kita boleh menggunakan fungsi anggota find () untuk mencari kejadian rentetan pertama yang lain. cari () akan mencari jarum tali di dalam tali jerami bermula dari kedudukan pos dan mengembalikan kedudukan kejadian pertama jarum. Fungsi rfind () berfungsi sama, kecuali mengembalikan kejadian terakhir dari rentetan yang dilalui.

string haystack = 'Hello World!' tali jarum = cout 'o'<< haystack.find(needle)<

Pengeluaran:

4 4 7 4294967295

Perintah cout pertama hanya akan mencetak '4' yang merupakan indeks kejadian pertama 'o' dalam rentetan jerami. Jika kita menginginkan 'o' di 'Dunia', kita harus mengubah 'pos' untuk melewati kejadian pertama. haystack.find (jarum, 4) akan kembali 4, sementara haystack.find (jarum, 5) akan memberikan 7. Sekiranya substring tidak dijumpai, cari () mengembalikan std :: string :: npos.

Npos adalah nilai khas yang sama dengan nilai maksimum yang dapat ditunjukkan oleh jenis size_type. Ini adalah 4294967295. Secara amnya, ia digunakan sebagai penunjuk rentetan oleh fungsi yang mengharapkan indeks rentetan atau sebagai penunjuk ralat oleh fungsi yang mengembalikan indeks rentetan.

Kod ringkas ini mencari rentetan untuk semua kejadian 'C ++' di str2 dan mencetak kedudukannya:

c ++ menggabungkan kod uri
string str2 = 'C ++ adalah bahasa pengaturcaraan berorientasi objek dan merangkumi kelas, pewarisan, polimorfisme, pengambilan data dan enkapsulasi. C ++ membenarkan pengendalian pengecualian, dan fungsi berlebihan yang tidak mungkin dilakukan dalam C.C ++ adalah bahasa yang kuat, efisien dan pantas. ' 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 }

Pengeluaran:

Dijumpai kejadian 'C ++' di kedudukan 0 Dijumpai kejadian 'C ++' di kedudukan 132 Dijumpai kejadian 'C ++' di kedudukan 217
#sertakan dengan menggunakan ruang nama pangkalan kelas std {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 () // Pengikatan lewat (RTP) ptr-> fun_3 () // Pengikatan lewat (RTP) ptr-> fun_4 () // Pengikatan awal tetapi panggilan fungsi ini // haram (menghasilkan ralat) kerana penunjuk // adalah dari jenis asas dan fungsi adalah dari // turunan kelas // p-> fun_4 (5)}

Pengeluaran:

fungsi kelas asas 1 fungsi kelas asas 2 fungsi kelas asas 3 fungsi kelas asas 4

Dengan ini, kita mengakhiri artikel ini mengenai Strings in C ++. Saya harap anda dapat memahami pelbagai Operasi yang dapat dilakukan di atasnya. Sekiranya anda ingin mempelajari lebih lanjut, lihat Java Training oleh Edureka, sebuah syarikat pembelajaran dalam talian yang dipercayai. Edureka's kursus latihan dan pensijilan dirancang untuk melatih anda untuk konsep Java teras dan maju bersama dengan pelbagai kerangka kerja Java seperti Hibernate & Spring.

Ada soalan untuk kami? Sila sebutkan di bahagian komen blog ini dan kami akan menghubungi anda secepat mungkin.