Cara menggunakan C ++ String Class

How Use C String Class



String literal adalah urutan watak dalam penunjuk array tetap yang ditamatkan oleh watak nul, 0. Apabila dikenal pasti, oleh pemboleh ubah, literal string tidak dapat mengurangkan atau menambah panjang. Banyak operasi tidak dapat dilakukan pada string literal. Jadi, ada keperluan untuk kelas rentetan. Kelas rentetan C ++ adalah untuk struktur data, kumpulan watak secara berurutan, yang membolehkan fungsi anggota dan operator bertindak berdasarkan watak tersebut. Kelas rentetan membolehkan lebih banyak manipulasi pada literal string yang sesuai, daripada sekadar string literal. Anda mesti mempunyai pengetahuan yang baik mengenai literal string, untuk memahami artikel ini.

Kelas dan Objek

Kelas adalah sekumpulan pemboleh ubah dan fungsi yang berfungsi bersama; di mana pemboleh ubah tidak mempunyai nilai yang ditetapkan. Apabila nilai diberikan kepada pemboleh ubah, kelas menjadi objek. Nilai yang berbeza yang diberikan kepada kelas yang sama menghasilkan objek yang berbeza; iaitu, objek yang berbeza adalah kelas yang sama dengan nilai yang berbeza. Membuat objek dari kelas dikatakan sebagai objek.







Nama, rentetan, adalah kelas. Objek yang dibuat dari kelas rentetan mempunyai nama programmer yang dipilih.



Fungsi yang termasuk dalam kelas diperlukan untuk memberi contoh objek dari kelas. Dalam C ++, fungsi itu mempunyai nama yang sama dengan nama kelas. Objek yang dibuat (disusun) dari kelas mempunyai nama yang berbeza yang diberikan kepada mereka, oleh pengaturcara.



Membuat objek dari kelas bermaksud membina objek; ia juga bermaksud memberi contoh.





Program C ++ yang menggunakan kelas rentetan, bermula dengan baris berikut di bahagian atas fail:

#sertakan
#sertakan
menggunakan namespace std;

Baris pertama adalah untuk input / output. Baris kedua adalah membenarkan program menggunakan semua ciri kelas rentetan. Baris ketiga membolehkan program menggunakan nama di ruang nama standard.



Melebihi Fungsi

Apabila dua atau lebih tandatangan fungsi yang berbeza mempunyai nama yang sama, nama itu dikatakan berlebihan. Apabila satu fungsi dipanggil, jumlah dan jenis argumen, tentukan fungsi mana yang dijalankan.

Pembinaan

tali()
Pernyataan berikut membina rentetan panjang sifar tanpa watak.

tali strCol=tali();

Ia bermula dengan nama kelas (jenis objek), rentetan. Ini diikuti oleh nama untuk string objek, yang diberikan oleh pengaturcara. Pengendali tugasan mengikuti; maka nama pembina dengan tanda kurung kosong. Di sini, strCol adalah objek instantiated dengan semua anggota data (sifat) dan fungsi anggota (kaedah).
tali (str)
Ini serupa dengan perkara di atas, tetapi mengambil string literal atau pengecam sebagai argumen, dalam konstruktor. Pernyataan berikut menggambarkan ini:

tali strCol=tali('Saya sayang awak');

Pembinaan dengan Initializer List

Kod berikut menggambarkan ini:

tali strCol=tali({'Saya','','yang','atau','v','Dan','','dan','atau',awak,' 0'});

String literal adalah saya sayang awak. Perhatikan watak nul di akhir senarai pemula.

rentetan (str, n)

Ini membentuk koleksi rentetan, dari watak n pertama rentetan lain. Kod berikut menggambarkan ini:

charhlm[] = 'Saya sayang awak';
tali strCol=tali(hlm, 6);
kos<<strCol<< ' n';

Keluarannya saya suka dengan 6 watak pertama dari I love you. Ingat: ruang tunggal adalah watak.

rentetan (str, pos, n)

Ini membentuk kumpulan rentetan dari n karakter, bermula dari kedudukan terindeks berasaskan sifar, pos, dari rentetan lain. Kod berikut menggambarkan ini:

charhlm[] = 'Saya sayang awak';
tali strCol=tali(hlm, 2, 4);
kos<<strCol<< ' n';

Hasilnya adalah, cinta.

Untuk dua kes di atas, jika n lebih besar daripada ukuran tali, pengecualian out_of_range dilemparkan - lihat kemudian.

rentetan (n, ‘c’)

Membentuk kumpulan watak n, di mana semua wataknya sama. Pertimbangkan,

tali strCol=tali(5,'Dan');
kos<<strCol<< ' n';

Keluarannya adalah, eeeee, 5 e.

Memberi Tali

String dapat diberikan sebagai berikut, setelah menyatakan kedua string:

tali strCol1=tali('Saya sayang awak');
tali strCol2;
strCol2=strCol1;
kos<<strCol2<< ' n';

Hasilnya, saya sayang awak.

Membina dengan Iterator

Iterator memberikan gambaran umum pengimbasan, melalui nilai-nilai koleksi. Sintaks untuk membuat rentetan dengan iterator, adalah:

templat<kelas InputIterator>
tali asas(InputIterator bermula,Akhir InputIterator, penyambungPeruntukkan&
ke=Peruntukkan());

Ini membina rentetan untuk julat [mula, berakhir] - lihat butiran kemudian.

Menghancurkan Rentetan

Untuk menghancurkan rentetan, biarkan ia keluar dari ruang lingkup.

Akses Elemen Kelas Rentetan

Objek rentetan boleh dibuat sub-skrip (diindeks) seperti array. Pengiraan indeks bermula dari sifar.

stringNama [i]

StringName operasi [i] mengembalikan rujukan kepada watak (elemen) di iikaindeks koleksi watak. Kod berikut mengeluarkan v:

tali strCol=tali('Saya sayang awak');
charch=strCol[4];
kos<<ch<< ' n';

stringName [i] konst

Operasi stringName [i] const dijalankan dan bukannya stringName [i] apabila objek rentetan adalah objek tetap. Ia digunakan dalam kod berikut sebagai contoh:

penyambungtali strCol=tali('Saya sayang awak');
charch=strCol[4];
kos<<ch<< ' n';

Ungkapan mengembalikan rujukan tetap ke iikaunsur objek rentetan. Tiada unsur rentetan yang dapat diubah.

Menetapkan Watak dengan Langganan

Karakter dapat diberikan ke objek rentetan tidak tetap, seperti berikut:

tali strCol=tali('Saya panggil');
strCol[2] = 'f';
kos<<strCol<< ' n';

Keluarannya saya jatuh. ‘C’ diubah menjadi ‘f’.

stringName.at (i)

stringName.at (i) serupa dengan stringName [i], tetapi stringName.at (i) lebih dipercayai. Kod berikut menunjukkan cara penggunaannya:

tali strCol=tali('Saya sayang awak');
charch=strCol.di(4);
kos<<ch<< ' n';

di () sebenarnya adalah fungsi anggota kelas rentetan.

stringName.at (i) konst

stringName.at (i) const serupa dengan stringName [i] const, tetapi stringName.at (i) const lebih dipercayai. stringName.at (i) const dijalankan dan bukannya stringName.at (i) apabila objek rentetan adalah objek rentas malar. Ia digunakan dalam kod berikut, misalnya:

penyambungtali strCol=tali('Saya sayang awak');
charch=strCol.di(4);
kos<<ch<< ' n';

at () const sebenarnya adalah fungsi anggota kelas rentetan.

Menetapkan Nilai dengan Fungsi ()

Nilai dapat diberikan ke objek rentetan tidak tetap, dengan fungsi at (), seperti berikut:

tali strCol=tali('Saya panggil');
strCol.di(2) = 'f';
kos<<strCol<< ' n';

Keluarannya saya jatuh.

Masalah dengan Sub-skrip

Masalah dengan sub-skrip (pengindeksan) adalah, jika indeks berada di luar jangkauan, hasil yang salah dapat diperoleh, atau kesalahan dapat dikeluarkan pada waktu berjalan.

depan ()

Ini mengembalikan rujukan ke elemen pertama objek rentetan, tanpa membuang elemen tersebut. Keluaran kod berikut adalah ‘I’.

tali strCol=tali('Saya sayang awak');
charch=strCol.depan();
kos<<ch<< ' n';

Karakter tidak dikeluarkan dari objek rentetan.

depan () konst

Apabila pembinaan objek rentetan didahului oleh const, ekspresi depan () const dijalankan bukan depan (). Contohnya digunakan dalam kod berikut.

penyambungtali strCol=tali('Saya sayang awak');
charch=strCol.depan();
kos<<ch<< ' n';

Rujukan tetap dikembalikan. Elemen tidak dikeluarkan dari objek rentetan. Tidak ada watak yang dapat diubah untuk objek rentetan malar.

belakang ()

Ini mengembalikan rujukan ke elemen terakhir objek rentetan, tanpa membuang elemen tersebut. Keluaran kod berikut adalah ‘u’.

tali strCol=tali('Saya sayang awak');
charch=strCol.belakang();
kos<<ch<< ' n';

belakang () konst

Apabila pembinaan objek rentetan didahului oleh const, ekspresi kembali () const dijalankan dan bukannya belakang (). Contohnya digunakan dalam kod berikut.

penyambungtali strCol=tali('Saya sayang awak');
charch=strCol.belakang();
kos<<ch<< ' n';

Rujukan tetap dikembalikan. Elemen tidak dikeluarkan dari objek rentetan.

Kapasiti tali

size_type kapasiti () const kecuali

Jumlah watak yang dapat ditampung oleh rentetan tanpa memerlukan penempatan semula, dikembalikan oleh fungsi anggota kapasiti ini. Segmen kod untuk ini adalah:

tali strCol=tali();
intpada satu=strCol.kapasiti();
kos<<pada satu<< ' n';

Keluarannya adalah 15 pada komputer saya.

rizab (n)

Ruang memori tidak selalu tersedia di kedai percuma. Ruang tambahan boleh ditempah terlebih dahulu. Pertimbangkan segmen kod berikut:

tali strCol=tali('cinta');
strCol.rizab(6);
kos<<strCol.kapasiti() << ' n';

Keluarannya adalah 15 pada komputer saya.

saiz () const kecuali

Ini mengembalikan bilangan watak dalam rentetan. Kod berikut menggambarkan:

tali strCol=tali('Saya sayang awak');
intpada satu=strCol.ukuran();
kos<<pada satu<< ' n';

Keluarannya adalah 10, yang tidak termasuk watak nul, 0.

panjang () const kecuali

-sama dengan ukuran().
Catatan:ukuran() <=kapasiti().

shrink_to_fit ()

Dapat mengurangkan kapasiti () ke ukuran () dengan menyebabkan pengagihan semula; itu tidak wajib. Kod berikut menunjukkan ini:

tali strCol=tali('Saya sayang awak');
strCol.rizab(12);
strCol.mengecilkan_keperluan();
ints=strCol.ukuran();
kos<<s<< ' n';

Keluarannya adalah 10 dan bukan 12 atau 16. Fungsi kembali tidak sah.

ubah saiz (sz), ubah saiz (sz, 'c')

Ini mengubah saiz rentetan. Sekiranya ukuran baru lebih kecil daripada ukuran lama, maka elemen ke hujungnya akan terhapus. Sekiranya ukuran baru lebih panjang, maka beberapa watak lalai ditambahkan hingga akhir. Untuk menambahkan watak tertentu, gunakan fungsi ubah ukuran () dengan dua argumen. Segmen kod berikut menggambarkan penggunaan dua fungsi:

tali strCol=tali('Saya sayang awak');
strCol.ubah saiz(6);
kos<< 'Ukuran baru strCol:' <<strCol.ukuran() << ' n';
tali strCol1=tali('Saya cinta', 'Dan');
strCol1.ubah saiz(12);
kos<< 'Ukuran baru strCol1:' <<strCol1.ukuran() << ' n';

Keluarannya adalah:

Saiz strCol baru: 6
Saiz baru strCol1: 12
Fungsi kembali tidak sah.

jelas () tidak terkecuali

Mengeluarkan semua elemen dari rentetan, seperti yang ditunjukkan oleh segmen kod berikut:

tali strCol=tali('Saya sayang awak');
strCol.jelas();
kos<<strCol.ukuran() << ' n';

Keluarannya adalah 0. Fungsi kembali tidak sah.

kosong () const kecuali

Ini mengembalikan 1 untuk true jika tidak ada watak dalam objek rentetan, atau 0 untuk false jika objek rentetan tidak kosong. Kod berikut menggambarkan ini:

tali strCol1=tali('Saya sayang awak');
kos<<strCol1.kosong() << ' n';
tali strCol2=tali();
kos<<strCol2.kosong() << ' n';

Keluarannya adalah:

0
1

Kembali Iterator dan Kelas Rentetan

Iterator adalah seperti penunjuk tetapi mempunyai lebih banyak fungsi daripada penunjuk.

mulakan () kecuali

Mengembalikan iterator yang menunjukkan watak pertama (elemen) objek rentetan, seperti pada segmen kod berikut:

tali strCol=tali('Saya sayang awak');
tali asas<char> ::iteratoriter=strCol.bermula();
kos<< *iter<< ' n';

Keluarannya adalah 'I'. Perhatikan cara deklarasi yang menerima iterator, telah diisytiharkan. Iterator diredferensikan dalam ungkapan pengembalian untuk mendapatkan nilai, dengan cara yang sama, bahawa penunjuk tidak dihormati.

bermula () const kecuali;

Mengembalikan iterator yang menunjukkan elemen pertama koleksi objek rentetan. Apabila pembinaan objek didahului oleh const, ekspresi mula () const dijalankan dan bukannya mula (). Dalam keadaan ini, elemen yang sesuai dalam objek tidak dapat diubah. Contohnya digunakan dalam kod berikut.

penyambungtali strCol=tali('Saya sayang awak');
tali asas<char> ::const_iteratoriter=strCol.bermula();
kos<< *iter<< ' n';

Keluarannya adalah 'I'. Perhatikan bahawa const_iterator telah digunakan kali ini, bukan hanya iterator, untuk menerima iterator yang dikembalikan.

akhir () kecuali

Mengembalikan iterator yang menunjukkan tepat di luar elemen terakhir objek rentetan. Pertimbangkan segmen kod berikut:

tali strCol=tali('Saya sayang awak');
tali asas<char> ::iteratoriter=strCol.akhir();
kos<< *iter<< ' n';

Keluarannya adalah nol, yang tidak ada apa-apa, kerana tidak ada unsur konkrit melebihi elemen terakhir.

akhir () const kecuali

Mengembalikan iterator yang menunjukkan tepat di luar elemen terakhir objek rentetan. Apabila pembinaan objek rentetan didahului oleh const, ujung ekspresi () const dijalankan dan bukannya akhir (). Pertimbangkan segmen kod berikut:

penyambungtali strCol=tali('Saya sayang awak');
tali asas<char> ::const_iteratoriter=strCol.akhir();
kos<< *iter<< ' n';

Hasilnya adalah sifar. Perhatikan bahawa const_iterator telah digunakan kali ini, bukan hanya iterator, untuk menerima iterator yang dikembalikan.

Pengulangan Berbalik

Ada kemungkinan untuk mempunyai iterator yang berulang dari akhir sebenar sebelum elemen pertama:

rbegin () kecuali

Mengembalikan iterator yang menunjuk ke elemen terakhir dari objek yang diatur rentetan, seperti pada segmen kod berikut:

tali strCol=tali('Saya sayang awak');
tali asas<char> ::pembalik_iteratoriter=strCol.rbegin();
kos<< *iter<< ' n';

Keluarannya adalah ‘u’. Perhatikan cara deklarasi yang menerima iterator terbalik, telah diisytiharkan. Iterator diredferensikan dalam ungkapan pengembalian untuk mendapatkan nilai, dengan cara yang sama, bahawa penunjuk tidak dihormati.

rbegin () const kecuali;

Mengembalikan iterator yang menunjukkan elemen terakhir objek rentetan. Apabila pembinaan objek didahului oleh const, ekspresi rbegin () const dijalankan bukan rbegin (). Dalam keadaan ini, elemen yang sesuai dalam objek tidak dapat diubah. Ciri ini digunakan dalam kod berikut, misalnya.

penyambungtali strCol=tali('Saya sayang awak');
tali asas<char> ::const_reverse_iteratoriter=strCol.rbegin();
kos<< *iter<< ' n';

Keluarannya adalah ‘u’. Perhatikan bahawa const_reverse_iterator telah digunakan pada masa ini, bukan hanya_balik_iterator, untuk menerima iterator yang dikembalikan.

tidak (kecuali)

Mengembalikan iterator yang menunjuk tepat sebelum elemen pertama objek rentetan. Pertimbangkan segmen kod berikut:

tali strCol=tali('Saya sayang awak');
tali asas<char> ::pembalik_iteratoriter=strCol.membuat();
kos<< *iter<< ' n';

Keluarannya adalah nol, yang tidak ada apa-apa, kerana tidak ada unsur konkrit sebelum elemen pertama.

render () const kecuali

Mengembalikan iterator yang menunjuk tepat sebelum elemen pertama objek rentetan. Apabila pembinaan objek didahului oleh const, ekspresi rend () const dijalankan bukan rend (). Pertimbangkan segmen kod berikut:

penyambungtali strCol=tali('Saya sayang awak');
tali asas<char> ::const_reverse_iteratoriter=strCol.membuat();
kos<< *iter<< ' n';

Hasilnya adalah sifar. Perhatikan bahawa const_reverse_iterator telah digunakan pada masa ini, bukan hanya_balik_iterator, untuk menerima iterator yang dikembalikan.

Pengubah String

Pengubah yang mengubah objek rentetan, juga dapat mengambil atau mengembalikan iterator.

Menambah

tali asas&pengendali+ =(penyambungtali asas&hlm)

Menambah objek rentetan kanan ke objek rentetan kiri. Contoh:

tali strCol1=tali('Saya cinta');
tali strCol2=tali('awak');
strCol1+ =strCol2;
kos<<strCol1<< ' n';

Hasilnya adalah saya sayang awak. Jangan lupa bahawa strCol1 + = strCol2 sama dengan strCol1 = strCol1 + strCol2.

basic_string & operator + = (const charT * s)

Menambah literal string ke koleksi objek rentetan. Contoh:

tali strCol=tali('Saya cinta');
strCol+ = 'awak';
kos<<strCol<< ' n';

Keluaran: Saya sayang awak.

basic_string & operator + = (charT c)

Menambah watak tunggal ke rentetan objek. Contoh:

tali strCol=tali('Saya cinta yo');
strCol+ = awak;
kos<<strCol<< ' n';

Keluaran: Saya sayang awak.

basic_string & operator + = (senarai_inisialisasi)

Menambah senarai pemula. Contoh:

tali strCol=tali('Saya cinta');
strCol+ = {'','dan','atau',awak,' 0'};
kos<<strCol<< ' n';

Keluaran: Saya sayang awak. Adalah baik untuk menambahkan nul, 0 di akhir senarai pemula watak.

basic_string & append (const basic_string & str)

Menambah objek rentetan argumen ke objek rentetan utama. Contoh:

tali strCol1=tali('Saya cinta');
tali strCol2=tali('awak');
strCol1.tambahkan(strCol2);
kos<<strCol1<< ' n';

Keluaran: Saya sayang awak.

basic_string & append (const charT * s)

Menambah argumen literal string ke rentetan utama. Contohnya

tali strCol=tali('Saya cinta');
strCol=strCol.tambahkan('awak');
kos<<strCol<< ' n';

Keluaran: Saya sayang awak.

basic_string & append (senarai_inisialisasi)

Menambah senarai inisialisasi, yang merupakan argumen, ke rentetan utama. Contoh:

tali strCol=tali('Saya cinta');
strCol=strCol.tambahkan({'','dan','atau',awak,' 0'});
kos<<strCol<< ' n';

Keluaran: Saya sayang awak. Adalah baik untuk menambahkan watak nul, 0 di akhir senarai pemula.

basic_string & append (size_type n, charT c)

Menambah n dengan watak yang sama. Contoh:

tali strCol=tali('tab');
strCol=strCol.tambahkan(2, 'atau');
kos<<strCol<< ' n';

Keluaran: pantang larang.

basic_string & append (const charT * s, size_type n)

Menambah unsur-unsur n pertama dari literal ke objek rentetan utama. Contoh:

tali strCol=tali('Saya cinta');
strCol=strCol.tambahkan(' awak sangat', 4);
kos<<strCol<< ' n';

Hasilnya adalah: Saya sayang awak. Sekiranya n lebih besar daripada panjang literal, pengecualian long_error dilemparkan.

basic_string & append (const basic_string & str, size_type pos, size_type n = npos)

Menambah n watak dari indeks, pos ke rentetan utama. Contoh:

tali strCol=tali('Saya cinta');
strCol=strCol.tambahkan(sudah begitu ', 2, 4);
kos<<strCol<< ' n';

Keluaran: Saya sayang awak. Pengecualian juga akan dilemparkan di sini, lihat kemudian.

Menugaskan

tali asas&memberi(penyambungtali asas&hlm)

Menetapkan objek rentetan argumen ke rentetan utama, menggantikan kandungan yang ada di sana.

tali strCol1=tali('Saya sayang awak');
tali strCol2=tali('Dia memerlukan saya');
strCol1=strCol1.memberi(strCol2);
kos<<strCol1<< ' n';

Keluaran: Dia memerlukan saya.

tali asas&memberi(penyambungamal*s)

Menetapkan argumen literal string ke rentetan utama, menggantikan kandungan yang ada di sana.

tali strCol=tali('Saya sayang awak');
strCol=strCol.memberi('Dia memerlukan saya');
kos<<strCol<< ' n';

Keluaran: Dia memerlukan saya.

tali asas&memberi(senarai awal<amal>)

Menetapkan argumen senarai pemula ke rentetan utama,menggantikan sebarang kandungan yang ada di sana.
[cc lang='c'melarikan diri='benar'lebar='780']
tali strCol=tali('Saya sayang awak');
strCol=strCol.memberi({'S','h','Dan','','n','Dan','Dan','d','','','m','Dan',' 0'});
kos<<strCol<< ' n';

Keluaran: Dia memerlukan saya. Adalah baik untuk selalu menambahkan nul, 0 di akhir senarai watak, untuk membentuk rentetan literal.

tali asas&memberi(penyambungamal*s,saiz_jenis n)

Menetapkan watak n pertama argumen literal rentetan ke rentetan utama, menggantikan kandungan yang ada di sana.

tali strCol=tali('Saya sayang awak');
strCol=strCol.memberi('Dia memerlukan saya', 9);
kos<<strCol<< ' n';

Keluaran: Dia memerlukan.

tali asas&memberi(saiz_jenis n,akta c)

Menetapkan argumen n watak yang sama dengan rentetan utama, menggantikan kandungan yang ada di sana.

tali strCol=tali('Saya sayang awak');
strCol=strCol.memberi(4, 'Dan');
kos<<strCol<< ' n';

Keluaran: eeee

tali asas&memberi(penyambungtali asas&hlm,size_type pos,
saiz_jenis n=npos)

Menugaskan n watak argumen objek rentetan, bermula dari pos, ke rentetan utama, menggantikan kandungan yang ada di sana.

tali strCol=tali('Saya sayang awak');
strCol=strCol.memberi('Dia memerlukan saya', 4, 5);
kos<<strCol<< ' n';

Keluaran: keperluan. Akan membuang pengecualian - lihat kemudian.

Memasukkan

tali asas&masukkan(size_type pos, penyambungtali asas&hlm)

Memasukkan argumen objek rentetan ke rentetan utama, pada indeks, pos.

tali strCol1=tali('Saya sayang awak');
tali strCol2=tali('benci dan');
strCol1=strCol1.masukkan(2,strCol2);
kos<<strCol1<< ' n';

Keluaran: Saya benci dan sayangkan awak. Akan membuang pengecualian - lihat kemudian.

tali asas&masukkan(size_type pos1, penyambungtali asas&
hlm,size_type pos2,saiz_jenis n=npos)

Memasukkan panjang watak n dari pos2 argumen objek rentetan, ke rentetan utama, pada indeks, pos1.

tali strCol1=tali('Saya sayang awak');
tali strCol2=tali('benci, mahu dan perlukan');
strCol1=strCol1.masukkan(2,strCol2, 6, 9);
kos<<strCol1<< ' n';

Keluaran: Saya mahu dan mencintaimu.

sisipan iterator (const_iterator p, charT c)

Memasukkan watak tertentu, yang merupakan argumen, ke dalam kedudukan yang ditunjukkan oleh iterator. Mengembalikan iterator untuk kedudukan watak yang baru dimasukkan.

tali strCol=tali('Saya sayang awak');
tali asas<char> ::iteratoriter=strCol.bermula();
++iter; ++iter; ++iter; ++iter; ++iter; ++iter;
tali asas<char> ::iteratorrangkaian=strCol.masukkan(iter, 'd');
kos<< *rangkaian<< ' n';
kos<<strCol<< ' n';

Keluarannya adalah:

‘D’

Saya sayang awak

sisipan iterator (const_iterator p, size_type n, charT c)

Memasukkan n watak yang sama argumen, ke dalam kedudukan, yang ditunjukkan oleh iterator. Mengembalikan iterator untuk kedudukan permulaan watak yang sama yang baru dimasukkan.

tali strCol=tali('Tab di tanah.');
tali asas<char> ::iteratoriter=strCol.bermula();
++iter; ++iter; ++iter;
tali asas<char> ::iteratorrangkaian=strCol.masukkan(iter, 2, 'atau');
kos<< *rangkaian<< ' n';
kos<<strCol<< ' n';

Keluarannya adalah:

'atau'

Tabu di tanah.

tali asas&masukkan(size_type pos, penyambungamal*s)

Menyisipkan string argumen literal pada indeks, pos dalam rentetan utama.

tali strCol=tali('Tab di tanah.');
strCol=strCol.masukkan(3, 'oo');
kos<<strCol<< ' n';

Keluaran: Tabu di tanah.

tali asas&masukkan(size_type pos, penyambungamal*s,saiz_jenis n)

Memasukkan watak n pertama dari string argumen literal, pada indeks, pos dalam rentetan utama.

tali strCol=tali('Tab di tanah.');
strCol=strCol.masukkan(3, 'oooo', 2);
kos<<strCol<< ' n';

Keluaran: Tabu di tanah.

Mengganti

tali asas&ganti(size_type pos1,size_type n1, penyambungtali asas&hlm))

Menggantikan watak n1 dalam objek rentetan utama dari indeks, pos1, dengan objek rentetan argumen.

tali strCol1=tali('Saya sayang awak');
tali strCol2=tali('benci kamu dan');
strCol1=strCol1.ganti(2, 4,strCol2);
kos<<strCol1<< ' n';

Keluaran: Saya benci awak dan awak. Akan membuang pengecualian - lihat kemudian.

tali asas&ganti(size_type pos1,size_type n1, penyambungtali asas&
hlm,size_type pos2,size_type n2=npos)

Menggantikan watak n1 dalam objek rentetan utama dari indeks, pos1, dengan watak n2 objek rentetan argumen dari indeks, pos2.

tali strCol1=tali('Saya sayang awak');
tali strCol2=tali('kita benci dia dan dia');
strCol1=strCol1.ganti(2, 4,strCol2, 3, 12);
kos<<strCol1<< ' n';

Keluaran: Saya benci dia dan awak.

tali asas&ganti(size_type pos1,size_type n1, penyambungamal*s,
size_type n2)

Menggantikan watak n1 dalam objek rentetan utama dari indeks, pos1, dengan watak n2 pertama dari argumen rentetan literal.

tali strCol1=tali('Saya sayang awak');
strCol1=strCol1.ganti(2, 4, 'benci dia dan dia', 12);
kos<<strCol1<< ' n';

Keluaran: Saya benci dia dan awak.

basic_string & ganti (size_type pos, size_type n, const charT * s)

Menggantikan n watak dalam objek rentetan utama dari indeks, pos, dengan argumen rentetan literal.

tali strCol1=tali('Saya sayang awak');
strCol1=strCol1.ganti(2, 4, 'benci dia dan');
kos<<strCol1<< ' n';

Keluaran: Saya benci dia dan awak.

tali asas&ganti(size_type pos1,size_type n1,size_type n2,akta c)

Menggantikan watak n1 dalam objek rentetan utama dari indeks, pos1, dengan n2 watak argumen yang sama.

tali strCol1=tali('Tablet buruk di sana.');
strCol1=strCol1.ganti(9, 3, 2, 'atau');
kos<<strCol1<< ' n';

Keluaran: pantang larang di sana ..

penghapusan iterator (const_iterator p)

Mengeluarkan watak pada kedudukan yang ditunjukkan oleh iterator; kemudian mengembalikan kedudukan iterator, yang kini dihuni oleh watak yang berada di sebelah watak ini (atau akhir ()). Kod berikut menggambarkan ini:

tali strCol=tali('abcd');
tali asas<char> ::iteratoriter=strCol.bermula();
++iter; ++iter;
strCol.padam(iter);
kos<<strCol[0] << '' <<strCol[1] << '
'
<<strCol[2]<< ' n';

Keluaran: a b d

tali asas&padam(size_type pos= 0,saiz_jenis n=npos)

Mengeluarkan n watak dari indeks, pos.

tali strCol=tali('abcd');
strCol.padam(1, 2);
kos<<strCol[0] << '' <<strCol[1] << ' n';

Keluaran: a d

tolak tolak balik (charT c)

Untuk menambahkan satu watak di hujung rentetan:

tali strCol=tali('abcd');
strCol.menolak kembali('5');
kos<<strCol<< ' n';

Keluaran: abcd5

batal pop_back ()

Mengeluarkan watak terakhir tanpa mengembalikannya. Ukuran tali dikurangkan sebanyak 1.

tali strCol=tali('abcde');
strCol.pop_back();
kos<<strCol<< ' n';

Keluaran: abcd

pertukaran kosong (basic_string & s)

Literal dua objek rentetan dapat ditukar.

tali strCol1=tali(<sebuah id='pasca-69618 -__ DdeLink__781_3724385525'>ke>'abcde');
tali strCol2=tali('1234567');
strCol1.pertukaran(strCol2);
kos<<strCol1<< ' n';
kos<<strCol2<< ' n';

Keluarannya adalah:

'1234567'
'abcde'

Operasi Rentetan

const charT * c_str () const kecuali

Mengembalikan penunjuk ke elemen rentetan pertama. Penunjuk boleh meningkat.

penyambungtali strCol=tali('abcde');
penyambung char*hlm=strCol.c_str();
kos<< *hlm<< ' n';
++hlm;
kos<< *hlm<< ' n';

Keluaran adalah:

ke
b

Kerana konstanta kedua dalam tajuk, program tidak dapat mengubah watak dalam rentetan. Pembinaannya didahului oleh const.

data const charT * () const kecuali

Mengembalikan penunjuk ke elemen rentetan pertama. Penunjuk boleh meningkat.

penyambungtali strCol=tali('abcde');
penyambung char*hlm=strCol.data();
kos<< *hlm<< ' n';
++hlm;
kos<< *hlm<< ' n';

Keluaran adalah:

ke
b

Kerana konstanta kedua dalam tajuk, program tidak dapat mengubah watak dalam rentetan. Pembinaannya didahului oleh const.

substrat basic_string (size_type pos = 0, size_type n = npos) konst

Mengembalikan objek rentetan watak n untuk sub-string bermula dari indeks, pos.

penyambungtali strCol=tali('abcdefghij');
penyambungrentetan retStr=strCol.substrat(2, 4);
kos<<retStr<< ' n';

Keluaran: cdef

cari () Fungsi Anggota

size_type find (const basic_string & str, size_type pos = 0) const tiada

Mencari objek sub-string yang bermula dari indeks, pos. Sekiranya dijumpai, mengembalikan permulaan sub-rentetan pada rentetan utama.

tali strCol=tali('Kami adalah dunia!');
tali strCol1=tali('yang');
intpada satu=strCol.cari(strCol1, 2);
kos<<pada satu<< ' n';

Pengeluaran:

indeks: 7
Kembali -1, apabila tidak dijumpai.

size_type find (const charT * s, size_type pos = 0) const

Mencari literal sub-string yang bermula dari indeks, pos. Sekiranya dijumpai, mengembalikan permulaan sub-rentetan pada rentetan utama.

tali strCol=tali('Kami adalah dunia!');
intpada satu=strCol.cari('adalah', 0);
kos<<pada satu<< ' n';

Oleh kerana pos = 0 adalah lalai, 0 dalam argumen mungkin telah dihilangkan.

Keluaran: 3

Kembali -1, apabila tidak dijumpai.

size_type find (const charT * s, size_type pos, size_type n) const

Mencari watak n pertama literal sub-string bermula dari indeks, pos. Sekiranya dijumpai, mengembalikan permulaan sub-rentetan pada rentetan utama.

tali strCol=tali('Budak terbesar');
intpada satu=strCol.cari('lebih besar', 1, 3);
kos<<pada satu<< ' n';

Keluaran: 4

Kembali -1, apabila tidak dijumpai.

size_type find (charT c, size_type pos = 0) konst

Mencari watak, c bermula dari indeks, pos. Sekiranya dijumpai, mengembalikan permulaan sub-rentetan pada rentetan utama. Sekiranya tidak dijumpai, mengembalikan -1.

tali strCol=tali('Kami adalah dunia!');
intpada satu=strCol.cari('Dengan');
kos<<pada satu<< ' n';

Keluaran: -1

Fungsi anggota mencari balik () terbalik berikut:

size_type rfind(penyambungtali asas&hlm,size_type pos=npos) penyambungtidak terkecuali;
size_type rfind(penyambungamal*s,size_type pos=npos) penyambung;
size_type rfind(penyambungamal*s,size_type pos,saiz_jenis n) penyambung;
size_type rfind(akta c,size_type pos=npos) penyambung;

Fungsi Anggota Perbandingan

int membandingkan (const basic_string & str) const kecuali

Membandingkan objek rentetan argumen dengan objek rentetan utama. Sekiranya rentetan utama berlaku sebelum argumen (dalam kamus) ia mengembalikan nombor positif. Sekiranya ia berlaku selepas rentetan utama, ia mengembalikan nombor negatif. Sekiranya kedua-dua tali itu sama, ia mengembalikan sifar.

tali strCol1=tali('orang ramai');
tali strCol2=tali('orang');
intpada satu=strCol1.membandingkan(strCol2);
kos<<pada satu<< ' n';

Keluaran: -13

int membandingkan (const charT * s) const

Sama seperti di atas, tetapi argumennya adalah rentetan literal.

tali strCol1=tali('orang');
intpada satu=strCol1.membandingkan('orang');
kos<<pada satu<< ' n';

Keluaran: 0

Pengendali String

Operator ini boleh digunakan untuk objek rentetan dan tidak semestinya literal string.

+

Gabungkan dua objek rentetan, dan kembalikan penggabungan.

tali strCol1=tali('menari di');
tali strCol2=tali(' bulan');
tali strCol=strCol1+strCol2;
kos<<strCol<< ' n';

Keluaran: menari di bulan.

==

Mengembalikan 1 untuk true, jika objek rentetan sama; dan sifar untuk palsu, jika tidak.

tali strCol1=tali('menari di');
tali strCol2=tali(' di atas bulan');
bool bl=strCol1==strCol2;
kos<<bl<< ' n';

Keluaran: 0

! =

Mengembalikan 1 jika objek rentetan tidak sama, dan sifar jika ada.

tali strCol1=tali('menari di');
tali strCol2=tali(' di atas bulan');
bool bl=strCol1! =strCol2;
kos<<bl<< ' n';

Keluaran: 1

<

Mengembalikan 1, jika operan kiri kurang daripada operan kanan mengikut kamus, atau sifar jika tidak.

tali strCol1=tali('menari di');
tali strCol2=tali(' di atas bulan');
bool bl=strCol1<strCol2;
kos<<bl<< ' n';

Keluaran: 0

Untuk watak biasa dalam huruf C ++, dalam urutan menaik, angka muncul sebelum huruf besar, yang muncul sebelum huruf kecil. Watak ruang hadir sebelum sifar dan semuanya.

Jenis Perwatakan String Utama C ++

char

Jenis char adalah jenis C ++ yang asli dan biasanya menyimpan watak dalam 8 bit.

char16_t

Ini menyimpan watak dalam 16 bit.

char32_t

Ini menyimpan watak dalam 32 bit.

wchar_t

char16_t dan char32_t adalah watak yang luas. wchar_t adalah watak luas yang ditentukan oleh hak milik dan pelaksanaan.

Jenis-jenis ini dipanggil sifat. Walau bagaimanapun, C ++ merujuk kepada mereka secara teknikal sebagai, pengkhususan sifat. Artikel ini telah memberi tumpuan kepada jenis char. Pendekatan untuk jenis lain sedikit berbeza - lihat kemudian.

Fungsi Anggota Operasi Tali Lain

Tanda tangan fungsi operasi rentetan lain adalah:

size_type find_first_of(penyambungtali asas&hlm,size_type pos= 0) penyambungtidak terkecuali;
size_type find_first_of(penyambungamal*s,size_type pos,saiz_jenis n) penyambung;
size_type find_first_of(penyambungamal*s,size_type pos= 0) penyambung;
size_type find_first_of(akta c,size_type pos= 0) penyambung;
size_type find_last_of(penyambungtali asas&hlm,size_type pos=npos) penyambungtidak terkecuali;
size_type find_last_of(penyambungamal*s,size_type pos,saiz_jenis n) penyambung;
size_type find_last_of(penyambungamal*s,size_type pos=npos) penyambung;
size_type find_last_of(akta c,size_type pos=npos) penyambung;
size_type find_first_not_of(penyambungtali asas&hlm,size_type pos= 0) penyambungtidak terkecuali;
size_type find_first_not_of(penyambungamal*s,size_type pos,saiz_jenis n) penyambung;
size_type find_first_not_of(penyambungamal*s,size_type pos= 0) penyambung;
size_type find_first_not_of(akta c,size_type pos= 0) penyambung;
size_type find_last_not_of(penyambungtali asas&hlm,size_type pos=npos) penyambungtidak terkecuali;
size_type find_last_not_of(penyambungamal*s,size_type pos,saiz_jenis n) penyambung;
size_type find_last_not_of(penyambungamal*s,size_type pos=npos) penyambung;
size_type find_last_not_of(akta c,size_type pos=npos) penyambung;

Kesimpulannya

C ++ mempunyai literal string dan objek rentetan. Objek rentetan mempunyai kumpulan watak secara berurutan, serupa dengan susunan watak mengikut urutan. Perbezaan antara koleksi tali dan array, adalah, bahawa koleksi tali dapat tumbuh panjang atau menyusut panjang. Objek rentetan dibuat (dibina) dari kelas rentetan. Objek tali adalah struktur data dengan fungsi anggota. Fungsi anggota dapat diklasifikasikan di bawah tajuk pembinaan objek, akses elemen, kapasiti rentetan, fungsi anggota rentetan dengan argumen iterator dan jenis pengembalian, dan pengubah rentetan. Persamaan tali dan pengendali hubungan juga wujud.