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
- Menyatakan dan Memulakan Rentetan dalam C ++
- Operasi pada Rentetan di C ++
- Ukuran tali
- Gabungan Rentetan
- Rentetan yang dilampirkan
- Mencari rentetan
String Class and Character Array Perbezaan
Kelas tali | Susunan watak |
String class adalah kelas yang mentakrifkan objek yang dapat diwakili sebagai aliran watak | Susunan watak hanyalah susunan watak. |
Dalam kes rentetan, memori dialokasikan secara dinamik sehingga lebih banyak memori dapat dialokasikan pada waktu berjalan berdasarkan permintaan | Ukuran 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 ++
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 11Gabungan 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_stSenaraian: 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 << endlPengeluaran:
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 4294967295Perintah 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 uristring 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) { coutfun_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 4Dengan 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.