Cara menggunakan fungsi substr () dalam C ++

How Use Substr Function C

Cara memotong mana-mana bahagian dari rentetan disebut sub-rentetan. Fungsi substr () wujud dalam C ++ untuk menghasilkan rentetan baru dengan memotong bahagian tertentu dari rentetan. The tali.h fail perpustakaan perlu disertakan untuk menggunakan fungsi ini. Fungsi ini mempunyai dua argumen. Argumen pertama mengandungi kedudukan awal rentetan baru, dan argumen kedua mengandungi panjang tali. Cara menggunakan fungsi substr () dalam C ++ telah dijelaskan dalam tutorial ini.

Pra-syarat

Sebelum memeriksa contoh tutorial ini, anda harus memeriksa penyusun g ++ yang terpasang atau tidak dalam sistem. Sekiranya anda menggunakan Visual Studio Code, maka pasangkan sambungan yang diperlukan untuk menyusun kod sumber C ++ untuk membuat kod yang dapat dilaksanakan. Di sini, aplikasi Visual Studio Code telah digunakan untuk menyusun dan melaksanakan kod C ++.



Sintaks

rentetan substr (size_t pos = 0, size_t len ​​= npos) const;



Di sini, argumen pertama mengandungi kedudukan permulaan dari mana sub-rentetan akan dimulakan, dan argumen kedua mengandungi panjang sub-rentetan. Fungsi akan mengembalikan sub-string jika kedudukan dan panjang permulaan yang sah diberikan. Pelbagai kegunaan fungsi ini telah ditunjukkan di bahagian seterusnya dari tutorial ini.



Contoh 1: Penggunaan sederhana substr ()

Contoh berikut menunjukkan penggunaan fungsi substr () yang paling biasa dan sederhana. Buat fail C ++ dengan kod berikut untuk menghasilkan substring dari nilai rentetan. Rentetan daripada beberapa perkataan telah ditetapkan ke dalam pemboleh ubah rentetan. Seterusnya, kedudukan permulaan yang sah dan panjang sub-string mempunyai nilai argumen fungsi substr (). String asal dan substring akan dicetak setelah melaksanakan kod.

// Sertakan perpustakaan yang diperlukan
#sertakan
#sertakan


intutama() {
// Tentukan pemboleh ubah rentetan
Jam::talioriginalstr='Selamat datang ke Linuxhint';
// Potong sub rentetan menggunakan substr ()
Jam::talinewstr=originalstr.substrat (sebelas,9);
// Cetak rentetan asal
Jam::kos <<'Rentetan asal ialah:' <<originalstr<< ' n';
// Cetak sub rentetan
Jam::kos <<Substring adalah: ' <<newstr<< ' n';

kembali 0;
}

Pengeluaran:

Menurut kod, rentetan asalnya adalah ‘ Selamat datang ke LinuxHint '. 11 telah diberikan sebagai kedudukan awal sub-string yang merupakan kedudukan watak 'L', dan 9 telah diberikan sebagai nilai panjang sub-string. ' LinuxHint ‘Telah kembali sebagai output fungsi substr () setelah melaksanakan kod.



Contoh 2: Menggunakan substr () berdasarkan kedudukan rentetan tertentu

Kod berikut akan menghasilkan sub-rentetan setelah mencari kedudukan rentetan tertentu. Buat fail C ++ dengan kod berikut untuk menguji kod tersebut. Nilai rentetan dari beberapa kata telah ditentukan dalam kod. Seterusnya, kedudukan rentetan tertentu dicari dalam rentetan utama dengan menggunakan fungsi find (). Fungsi substr () telah digunakan untuk menghasilkan sub-string bermula dari awal rentetan ke nilai posisi yang akan dikembalikan oleh fungsi find ().

// Sertakan perpustakaan yang diperlukan
#sertakan
#sertakan
menggunakan ruang namaJam;

intutama()
{
Jam::talistrData= 'Saya suka pengaturcaraan C ++';

// Mari cari kedudukan '-' menggunakan str.find ()
intkedudukan=strData.cari('pengaturcaraan');

// Kami akan mendapat substring sehingga corak ini
Jam::talinewstr=strData.substrat(0, kedudukan);

Jam::kos <<strData<< ' n';
Jam::kos <<newstr<< ' n';

kembali 0;
}

Pengeluaran:

Menurut kod, nilai rentetan utama adalah, Saya suka pengaturcaraan C ++ dan nilai rentetan carian adalah, ‘ pengaturcaraan ’ yang wujud dalam rentetan utama. Jadi, outputnya adalah, ‘ Saya suka C ++ ‘Setelah melaksanakan kod tersebut.

Contoh 3: Menggunakan substr () dengan pengendalian pengecualian

Fungsi substr () telah digunakan dengan pengecualian pengendalian dalam kod berikut. Pengecualian akan dihasilkan sekiranya kedudukan permulaan yang tidak sah diberikan dalam fungsi substr (). Buat fail C ++ dengan kod berikut untuk menguji kod tersebut. Di blok percubaan, nilai rentetan satu kata telah ditetapkan, dan posisi awal yang tidak valid telah digunakan dalam fungsi substr () yang akan menimbulkan pengecualian dan mencetak pesan kesalahan.

// Sertakan perpustakaan yang diperlukan
#sertakan
#sertakan

intutama() {
cuba{

// Tentukan pemboleh ubah rentetan
Jam::talioriginalstr='Linuxhint';
// Potong sub rentetan menggunakan substr ()
Jam::talinewstr=originalstr.substrat (sebelas,9);
// Cetak sub rentetan
Jam::kos <<Substring adalah: ' <<newstr<< ' n';
}
tangkap (penyambungJam::luar kawasan) {
Jam::cerr << 'Posisi berada di luar jangkauan. n';
}
kembali 0;
}

Pengeluaran:

Menurut kod, nilai rentetan utama adalah, LinuxHint dan nilai kedudukan permulaan adalah 11 yang tidak ada. Jadi, pengecualian telah dihasilkan, dan mesej ralat telah dicetak setelah melaksanakan kod tersebut.

Contoh 4: Menggunakan substr () untuk memisahkan rentetan

Contoh berikut menunjukkan penggunaan fungsi substr () untuk memisahkan rentetan berdasarkan pembatas. Fungsi find () telah digunakan untuk mencari posisi pembatas, dan fungsi hapus () telah digunakan untuk menghilangkan rentetan terpecah dengan pembatas dari tali utama. Gelung ‘while’ telah digunakan untuk mencari semua kedudukan pembatas dalam rentetan utama dan menyimpan nilai terbelah ke dalam array vektor. Seterusnya, nilai array vektor telah dicetak.

// Sertakan perpustakaan yang diperlukan
#sertakan
#sertakan
#sertakan

intutama(){
// Tentukan rentetan
Jam::talirentetanData= 'PHP: C ++: Python:';
// Tentukan pemisah
Jam::talipemisah= ':';
// Menyatakan pemboleh ubah vektor
Jam::vektorbahasa{};
// Menyatakan pemboleh ubah integer
intkedudukan;
// Menyatakan pemboleh ubah rentetan
Jam::talitali luar;
/ *
Pisahkan rentetan menggunakan fungsi substr ()
dan menambahkan kata terbelah ke dalam vektor
* /

sementara ((kedudukan=rentetanData.cari(pemisah)) !=Jam::tali::npos) {
bahasa.menolak kembali(rentetanData.substrat(0, kedudukan));
rentetanData.padam(0, kedudukan+pemisah.panjang());
}
// Cetak semua perkataan yang terbelah
untuk (penyambung kereta &tali luar:bahasa) {
Jam::kos <<tali luar<<Jam::endl;
}
kembali 0;
}

Pengeluaran:

Menurut kod, nilai rentetan utama adalah PHP: C ++: Python dan nilai pembatasnya adalah, ‘ : ' . Output berikut akan muncul setelah melaksanakan skrip di atas.

Kesimpulannya

Tujuan utama menggunakan fungsi substr () adalah untuk mengambil substring dari rentetan dengan menyebutkan kedudukan permulaan dan panjang sub-string. Berbagai kegunaan fungsi ini telah dijelaskan dalam tutorial ini dengan menggunakan beberapa contoh untuk membantu pengguna C ++ baru menggunakannya dengan betul dalam kod mereka.