BAB
8.
String
C++
8.1 Pengantar
STL (standard template library) mempunyai tiga jenis kontainer, yaitu
kontainer kelas pertama, kontainer adapter dan kontainer dekat (near). Ada tiga
jenis kontainer dekat yang memiliki fungsi-fungsi yang sama dengan
kontainer-kontainer lain. Sebagai contoh, kontainer dekat ini mendukung adanya
iterator dan memiliki fungsi-fungsi seperti begin() dan end(), dan
lainnya. Kontainer-kontainer dekat tersebut adalah bitset, valarray, dan string
C++. Anda telah mempelajari string-C
pada Bab 10 yang merupakan array berbasis pointer yang diterminasi dengan
karakter Null. String C++ merupakan sebuah string berbasis template kelas.
Headernya adalah <string>.
String C++ secara fungsional merupakan perbaikan dari string-C. Sebagai contoh,
banyak operator yang umum digunakan pada variabel-variabel bertipe fundamental
tidak dapat diterapkan pada string-C, meskipun elemen-elemen individual dari
string-C bisa diperlakukan sebagai elemen-elemen dari array. Di atas semuanya,
string-C merupakan sebuah string dengan panjang tetap. Panjangnya tidak dapat
diubah setelah pendeklarasiannya. Semua keterbatasan ini tidak ada pada string
C++. String C++ dapat ditugaskan secara menyeluruh dan dapat dimodifikasi
selama eksekusi program. Operator-operatot =, !=, ==, >, <. >=, <=,
+, << , dan >> dapat diterapkan pada string C++ dengan cara yang
sama operator-operator itu diterapkan pada variabel bertipe fundamental. String
C++ merupakan string dinamis, karena panjangnya (jumlah elemen) dapat berubah
selama eksekusi program. Untuk dapat bekerja dengan string C++, Anda perlu
mencantumkan file header <string>
di dalam program. String C++ dideklarasikan sebagai berikut:
string pengenal;
Di sini, string adalah nama
kelas atau tipe dari objek string dan pengenal
adalah nama dari objek.
8.2 Konstruksi
dari String C++
Sejumlah konstruktor disediakan di dalam kelas string. String C++ dapat dikonstruksi (diciptakan) menggunakan sejumlah
metode berikut:
a.
Dengan
mendeklarasikan sebuah string kosong.
b.
Dengan
mendeklarasikan dan menginisialisasi dengan string yang memuat
karakter-karakter yang diapit dengan kutip ganda.
c.
Dengan
menugaskan sejumlah salinan dari sebuah karakter kepada string.
d.
Sebagai salinan
dari string lain.
e.
Sebagai substring dari string sekarang
dengan menetapkan lokasi indeks dan jumlah karakter.
f.
Sebagai substring dari string sekarang
dengan menetapkan iterator awal sampai iterator akhir.
Metode-metode yang disebutkan itu diilustrasikan pada program 8.1 berikut.
Pada program, string S diinisialisasi sehingga ia merupakan string tanpa
elemen. Hal ini diuji menggunakan fungsi empty(). String Str1 dideklarasikan dan diinisialisasi dengan sebuah string, yang
karakter-karakternya diapit di dalam kutip ganda. String Str2 dideklarasikan untuk memiliki 6 elemen, yang masing-masing
elemen sama dengan ‘B’. String Str3
merupakan salinan dari string Str1.
String Str4 merupakan sebuah
substring dari Str1, yang memuat 7
karakter dari string Str1 diawali
dari karakter ke-8. String Str5
merupakan sebuah substring dari Str1
dan memiliki elemen-elemen dari elemen pada lokasi iterator (Str1.begin() + 3), yaitu elemen
keempat, sampai iterator Str.end(),
yaitu akhir dari Str1. String Str6 dikonstruksi dari 8 karakter
pertama dari string lain yang diberikan di dalam kutip ganda.
Program 8.1 Mengilustrasikan
metode-metode untuk mengkonstruksi string C++
|
|
|
#include <iostream>
#include <string> //mencantumkan file header <string>
using namespace std;
int main(){
string
S ;
if(S.empty())
//menguji apakah string S kosong atau tidak
cout<<"S
kosong"<<endl;
string
Str1;
Str1 = "SELAMAT DATANG!"; /*inisialisasi dengan karakter-karakter
di dalam
kutip
gandar */
string
Str2 (6,'B'); //Str2
dikonstruksi dengan 6 buah karakter 'B'
string
Str3 (Str1); //Str3
adalah sebuah salinan dari Str1
string
Str4(Str1,8, 7); //Str4
dikonstruksi dengan 7 karakter dari Str1
//diawali
dari karakter ke-8.
string
Str5 (Str1.begin()+3, Str1.end());
/*Str5 dikonstruksi dengan iterator
(begin()+ 3), yaitu elemen ke-4 dari Str1
sampai akhir Str1.*/
string Str6 ("SELAMAT DATANG!!",
8);
//Str6 dikonstruksi dari 8 karakter
pertama dari string yang diapit oleh kutip ganda
cout<<"Str1 =
"<<Str1<<endl;
cout<<"Str2 =
"<<Str2<<endl;;
cout<<"Str3 =
"<<Str3<<endl;
cout<<"Str4 =
"<<Str4<<endl;
cout<<"Str5 =
"<<Str5<<endl;
cout<<"Str6 =
"<<Str6<<endl;
return
0;
}
|
KELUARAN
|
|
S kosong
Str1 = SELAMAT
DATANG!
Str2 = BBBBBB
Str3 = SELAMAT
DATANG!
Str4 = DATANG!
Str5 = AMAT
DATANG!
Str6 = SELAMAT
|
8.3 Fungsi-Fungsi
dari Kelas string
Sejumlah fungsi yang didukung oleh string C++ berikut dengan penjelasan
singkat masing-masing dicantumkan pada Tabel 8.1. Program berikut
mengilustrasikan aplikasi dari salah satu fungsi, compare(), yang digunakan untuk membandingkan dua string atau
substring. Fungsi ini menghasilkan 1-, 0, dan 1 jika string yang sedang
dibandingkan dengan string sekarang secara leskikografikal lebih besar dari,
sama dengan, atau lebih kecil dari string sekarang. Sebagai contoh, Z secara
leksikografikal lebih besar dari alfabet manapun antara A sampai Y. Sama
halnya, S lebih besar dari K. Lihat program berikut.
Program 8.2 Mengilustrasikan aplikasi
dari fungsi compare() pada string
|
|
|
#include <iostream>
#include <string>
using namespace std;
int main()
{
string
Str1, Str2, Str3, Str4 ;
Str1 = "Jakarta";
Str2 = "Bandung";
Str3 = "Bandung";
Str4 = "ZA";
cout<<"Str1 =
"<<Str1<<", Str2 = "<<Str2<<endl;
cout<<"Str3 =
"<<Str3<<", Str4 = "<<Str4<<endl;
cout<<"Str1.compare(Str2) =
"<<Str1.compare(Str2)<<endl;
cout<<"Str2.compare(Str3) =
"<<Str2.compare(Str3)<<endl;
cout<<"Str4.compare(Str2) =
"<<Str4.compare(Str2)<<endl;
cout<<"Str3.compare(Str4) =
"<<Str3.compare(Str4)<<endl;
return
0;
}
|
KELUARAN
|
|
Str1 = Jakarta,
Str2 = Bandung
Str3 = Bandung,
Str4 = ZA
Str1.compare(Str2)
= 1
Str2.compare(Str3)
= 0
Str4.compare(Str2)
= 1
Str3.compare(Str4)
= -1
|
Dari ketiga string, ZA merupakan yang terbesar, karena Z lebih besar dari
alfabet huruf besar lain. Sama halnya, Jakarta lebih besar dari Bandung, karena
J lebih besar dari B.
TABEL 8.1 Sejumlah fungsi kelas string C++ dan penjelasannya
Fungsi
|
Penjelasan
|
append()
|
Fungsi ini dipakai untuk menempatkan sebuah substring di
akhir dari string sekarang. Untuk lengkapnya, lihat program 8.3.
|
assign()
|
Fungsi ini
menugaskan (i) sebuah string atau (ii) sejumlah tertentu karakter dari sebuah
string atau (iii) sebuah substring kepada string sekarang. Untuk lengkapnya,
lihat program 8.3.
|
at()
|
Fungsi ini
menghasilkan referensi yang menunjuk ke sebuah elemen pada lokasi indeks.
Lihat program 8.3 untuk ilustrasi.
|
begin()
|
Menghasilkan
iterator yang menunjuk ke elemen pertama dari string. Lihat program 8.1 dan
program 8.4.
|
C_str()
|
Menghasilkan
sebuah pointer const yang menunjuk ke suatu string-C yang identik dengan
string C++ sekarang. String-C diterminasi (diakhiri) dengan karakter Null.
|
capacity()
|
Menghasilkan
jumlah elemen maksimum yang dapat ditampung oleh alokasi memori sekarang.
Lihat program 8.3 untuk aplikasinya.
|
clear()
|
Fungsi ini
menghapus semua elemen dari string.
|
compare()
|
Fungsi ini
menghasilkan 1-, 0, dan 1 jika string yang sedang dibandingkan dengan string
sekarang secara leskikografikal lebih besar dari, sama dengan, atau lebih
kecil dari string sekarang. Lihat program 8.2 dan program 8.4.
|
copy()
|
Fungsi ini menyalin sejumlah tertentu karakter dari string
sekarang. Untuk ilustrasi, lihat program 8.6.
|
data()
|
Fungsi ini menghasilkan sebuah pointer yang menunjuk ke
elemen pertama dari string sekarang. Lihat program 8.6 untuk ilustrasi.
|
empty()
|
Fungsi ini menghasilkan true jika tida k ada elemen di dalam string. Menghasilkan false jika string kosong. Lihat
program 8.1 dan program 8.4 untuk ilustrasi.
|
end()
|
Fungsi ini menghasilkan iterator yang menunjuk ke posisi
tepat setelah akhir string. Lihat program 8.2 dan program 8.4 untuk
ilustrasi.
|
erase()
|
Fungsi ini menghapus elemen-elemen tertentu dari string.
Untuk ilustrasi, lihat program 8.4.
|
find()
|
Fungsi ini menghasilkan lokasi dari kemunculan pertama
dari sebuah string/substring di dalam string sekarang. Lihat program 8.6
untuk ilustrasi.
|
find_first_not_of()
|
Fungsi ini menghasilkan indeks dari kemunculan pertama
dari sebuah karakter yang tidak cocok dengan suatu karakter pada string yang
diberikan.
|
find_first_of()
|
Fungsi ini menghasilkan indeks dari kemunculan pertama
dari sebuah karakter yang cocok dengan suatu karakter pada string yang
diberikan.
|
find_last_not_of()
|
Fungsi ini menghasilkan indeks dari kemunculan akhir dari
sebuah karakter yang tidak cocok dengan suatu karakter pada string yang
diberikan.
|
find_last_of()
|
Fungsi ini menghasilkan indeks dari kemunculan akhir dari
sebuah karakter yang cocok dengan suatu karakter pada string yang diberikan.
|
getline()
|
Fungsi ini dipakai untuk membaca string-string dari aliran
I/O.
|
insert()
|
Fungsi ini dipakai untuk menyisipkan karakter-karakter
atau substring dengan pelbagai cara ke dalam string sekarang.
|
length()
|
Menghasilkan jumlah elemen di dalam string tanpa mencakup
karakter Null.
|
max_size()
|
Menghasilkan jumlah elemen maksimum yang dapat ditampung
di dalam memori yang teralokasi sekarang untuk string.
|
rbegin()
|
Fungsi ini
menghasilkan sebuah iterator balik (reverse) yang menunjuk ke akhir string.
|
rend()
|
Fungsi ini
menghasilkan sebuah iterator balik (reverse) yang menunjuk ke awal string.
|
replace()
|
Fungsi ini
dipakai untuk mengganti elemen-elemen dengan sejumlah cara.
|
reserve()
|
Fungsi ini
menetapkan kapasitas string menjadi ukuran minimum.
|
resize()
|
Fungsi ini
mengubah ukuran string menjadi ukuran yang ditetapkan. Jika nilai dari
elemen-elemen ditetapkan, maka elemen-elemen yang baru saja diciptakan akan
diinisialisasi dengan nilai-nilai itu.
|
rfind()
|
Fungsi ini
menhasilkan kemunculan pertama dari string di dalam string sekarang dengan
melakukan pencarian mundur dari indeks yang diberikan.
|
size()
|
Fungsi ini
menghasilkan jumlah elemen yang sekarang ada di dalam string. Lihat program 8.3
dan program 8.4 untuk aplikasinya.
|
substr()
|
Fungsi ini
menghasilkan substring yang memuat sejumlah tertentu elemen (n) dari string
string sekarang, yang diekstraksi dari lokasi tertentu. Lihat program 8.4.
|
swap()
|
Fungsi ini menukar elemen-elemen dari dua string.
|
8.4 Aplikasi
dari Sejumlah Fungsi Kelas string
Aplikasi dari fungsi append(), assign(), at(), capacity(), dan size() diilustrasikan pada program
berikut. Fungsi size() menghasilkan
jumlah elemen aktual di dalam string, sedangkan fungsi capacity() menghasilkan jumlah elemen maksimum yang dapat ditampung
di dalam alokasi memori terkini untuk string.
Program 8.3 Mengilustrasikan aplikasi
dari fungsi append(), assign(), at(), capacity(), dan size()
|
|
|
#include<iostream>
#include<string>
using namespace std;
int main()
{
string
Str1, Str2, Str3 ;
Str1 = "Selamat Datang!";
Str2 = "Jika Anda ingin belajar
C++,";
Str3 = "Jika Anda ingin mendaftar ke
lembaga pemrograman ini,";
cout<<"Ukuran dari Str1 =
"<<Str1.size ()<<endl;
cout<<"Kapasitas dari Str1 =
"<< Str1.capacity()<<endl;
cout<<"Sebelum penempatan (di
akhir string) \nStr1 ="<<Str1;
cout<<"\nStr2 = " <<
Str2<<"\nStr3 = "<< Str3<<endl;
Str2.append(Str1); //Str1 ditempatkan di belakang Str2
Str3.append (Str1); //Str1 ditempatkan di belakang Str3
cout<<"Setelah penempatan (di akhir
string)\nStr2 = "<<Str2<<"\n"<<"Str3
= "<<Str3<<endl;
Str1.assign (Str2); //Str2 ditugaskan kepada Str1
cout<<"Setelah penugasan \nStr1
= "<<Str1<<endl;
cout<<"Elemen pada lokasi 5
dari Str2 adalah "<<Str2.at(5)<< endl;
return
0 ;
}
|
KELUARAN
|
|
Ukuran dari
Str1 = 15
Kapasitas dari
Str1 = 31
Sebelum
penempatan (di akhir string)
Str1 =Selamat
Datang!
Str2 = Jika
Anda ingin belajar C++,
Str3 = Jika
Anda ingin mendaftar ke lembaga pemrograman ini,
Setelah penempatan
(di akhir string)
Str2 = Jika
Anda ingin belajar C++,Selamat Datang!
Str3 = Jika
Anda ingin mendaftar ke lembaga pemrograman ini,Selamat Datang!
Setelah
penugasan
Str1 = Jika
Anda ingin belajar C++,Selamat Datang!
Elemen pada
lokasi 5 dari Str2 adalah A
|
Keluaran menunjukkan perbedaan antara size()
dan capacity(). Statemen Str1.size() menghasilkan jumlah elemen
aktual di dalam Str1, yaitu 15,
sedangkan kapasitasnya adalah untuk 31 elemen.
FUNGSI erase()
Fungsi ini dipakai untuk berikut:
a.
Untuk menghapus
string secara menyeluruh. Kode diberikan berikut dan ilustrasinya diberikan
pada program 8.4:
Str.erase();
b.
Untuk
menghaspus sejumlah tertentu karakter, yang diawali dari lokasi tertentu.
Sebagai contoh, Anda ingin menghapus 3 karakter dari string Str, yang diawali dari indeks 4.
Kodenya diberikan berikut:
Str.erase(4,
3);
c.
Untuk menghapus
semua karakter dari string Str, yang
diawali dari sebuah posisi (katakanlah 10) sampai akhir string. Kodenya
diberikan berikut:
Str.erase(10);
Program 8.4 Mengilustrasikan aplikasi
dari fungsi substr(), begin(),end(),compare() dan erase()
|
|
|
#include <iostream>
#include <string>
using namespace std;
int main()
{
string
Str1, Str2, Str3 ;
Str1 = "Selamat datang ke pertemuan
ini";
Str3 = "John Kristof";
cout<<"ukuran dari Str1 =
"<<Str1.size();
cout<<"\nUkuran dari Str3 =
"<<Str3.size();
cout<<"\nStr1 awal =
"<<Str1<<endl;
cout<<"Str1.substr(4,11) =
"<<Str1.substr(4,11)<<endl;
Str2 = "Anda akan mempelajari
C++" ;
cout<<"Str2 =
"<<Str2<<endl;
string::iterator itr1 =Str2.begin();
//untuk iterator, lihat
string::iterator itr2 = Str2.end(); //Bab 21
Str2.erase(itr1+3, itr1+16);
cout<<"Setelah Str2.erase
(itr1+3, itr1+16) = "<<Str2<<endl;
Str2.erase(4);
cout<<"Setelah Str2.erase(4) =
" <<Str2<<endl;
Str2.erase();
if
(Str2.empty ())
cout<<"Setelah Str2.erase(),
Str2 menjadi kosong."<<endl;
return
0;
}
|
KELUARAN
|
|
ukuran dari
Str1 = 31
Ukuran dari
Str3 = 12
Str1 awal =
Selamat datang ke pertemuan ini
Str1.substr(4,11)
= mat datang
Str2 = Anda
akan mempelajari C++
Setelah
Str2.erase (itr1+3, itr1+16) = Andajari C++
Setelah
Str2.erase(4) = Anda
Setelah
Str2.erase(), Str2 menjadi kosong.
|
Dua baris pertama pada keluaran memberikan ukuran dari string Str1 dan string Str2. Baris keempat pada keluaran memuat sebuah substring dari Str1 yang memuat 11 karakter mulai dari
karakter ke-4. Pada baris berikutnya dari keluaran, efek dari penghapusan mulai
dari elemen ke-4 sampai elemen ke-17 dari Str2
menghasilkan Andajari C++. Kemudian,
hasilnya dihapus kembali mulai dari elemen keempat sampai akhir string, jadi
hanya Anda yang tertinggal. Hasilnya
sekali lagi dihapus menggunakan fungsi erase()
yang menghapus string secara menyeluruh.
8.5 Operasi-Operasi
Kelas string
Operator-operator berikut didukung oleh kelas string: =, ==, !=, <,
>, <=, >=, +, <<, dan >>. Dimisalkan bahwa Anda memiliki
tiga string S1, S2, dan S3 yang dideklarasikan berikut:
string S1 (“Selamat
”);
string S2 (“datang!”),
S3;
Operator + dapat dipakai pada tipe-tipe fundamental (lihat program 8.5).
Jadi, Anda dapat menuliskan:
S3 = S1 + S2;
Operator + menempatkan S1 di belakang S2 dan Anda mendapatkan:
S3 = “Selamat datang!”;
Sama halnya, Anda bisa menambahkan sebuah karakter pada suatu string.
Jadi, dimisalkan string S diberikan sebagai
string S = “Ada”;
Operasi S + ‘t’ akan
menambahkan t di akhir dari S. Setelah penjumlahan, didapatkan S = “Adat”.
FUNGSI getline()
Fungsi getline() untuk sebuah
string dikode sebagai berikut:
string Str;
getline(cin, str) ;
Aplikasi dari fungs ini diilustrasikan pada program berikut. Program juga
mengilustrasikan aplikasi dari sejumlah operator pada string.
Program 8.5 Mengilustrasikan aplikasi
dari sejumlah operator pada string
|
|
|
#include <iostream>
#include <string>
using namespace std;
int main()
{
string
Str1(" SELAMAT DATANG!"), Str2("Kristof,") ;
cout<<"Str1 =
"<<Str1<<endl;
string
Str3;
Str3= Str2 + Str1;
cout<<"Str3 = "<<
Str3 << endl;
string
S1 = "Ada";
string
S2 = "ointer";
string
S3 = "P";
char
ch = 't';
string
S4= S1 + ch;
S2 = S3+S2;
cout<<"S1 =
"<<S1<<"\tS4 ="<<S4<<"\tS2 =
"<<S2<<endl;
string
S5;
cout<<"Semua dalam huruf kecil:
\n";
getline(cin, S5);
cout<<"S5 =
"<<S5<<endl;
if
(Str1> S5)
cout<<"Str1 lebih besar dari
S5."<<endl;
else
cout<<"Str5 lebih besar dari
S1."<<endl;
if
(S1==Str1)
cout<<"S1 dan Str1
sama."<<endl;
else
cout<<"S1 dan Str1 tidak
sama."<<endl;
if
(S4>S1)
cout<<"S4 lebih besar dari
S1."<<endl;
else
cout<<"S1 lebih besar dari
S4."<<endl;
return
0;
}
|
KELUARAN
|
|
Str1 = SELAMAT DATANG!
Str3 = Kristof,
SELAMAT DATANG!
S1 = Ada S4 =Adat S2 = Pointer
Semua dalam
huruf kecil:
saya belajar
pemrograman c++.
S5 = saya
belajar pemrograman c++.
Str5 lebih besar
dari S1.
S1 dan Str1
tidak sama.
S4 lebih besar
dari S1.
|
FUNGSI data(), find(), dan copy()
Kode Str.data() menghasilkan
sebuah pointer yang menunjuk ke elemen pertama dari string Str. Fungsi find()
menghasilkan posisi dari kemunculan pertama dari sebuah string/substring di
dalam string sekarang. Fungsi copy()
menghasilkan sebuah salinan dari sejumlah tertentu karakter dari sebuah string.
Program berikut mengilustrasikan aplikasi dari ketiga fungsi berikut dengan
fungsi compare() yang dipakai di
dalam kondisi if.
Program 8.6 Mengilustrasikan aplikasi
dari fungsi data(), find(), dan copy()
|
|
|
#include <iostream>
#include <string>
using namespace std;
int main()
{
string
Str1, Str2, Str3, Str4 ;
Str1 = "Selamat datang untuk
Anda!";
Str2 = Str1; //penugasan
cout<<"Str2 =
"<<Str2;
Str3 = "Jika Anda ingin bergabung
dengan kami,";
cout<<Str3;
cout<<"\ndata =
"<<Str2.data();
if
((Str1.compare(Str2)) ==0)
cout<<"\nStr1 dan Str2
sama."<<endl;
else
cout<<"Str1 dan Str2 tidak
sama." <<endl;
cout<<"Di dalam Str1, substring
tang ditemukan pada "<<Str1.find("tang")<<endl;
char
S[12]; // string-C atau array
karakter
memset(S,'\0',12) ; //fungsi memset() mengisi 12 elemen dari array S
//dengan
karakter Null
Str3.copy(S, 11); //menyalin 11 karakter pertama dari Str3
cout<<"Jumlah karakter yang
disalin = "<<Str3.copy(S, 11)<<endl;
//menampilkan jumlah karakter yang disalin
cout<<S<<endl; //menampilkan
string-C, yaitu S
cout<<Str3<<endl; //menampilkan Str3
return
0;
}
|
KELUARAN
|
|
Str2 = Selamat
datang untuk Anda!Jika Anda ingin bergabung dengan kami,
data = Selamat
datang untuk Anda!
Str1 dan Str2
sama.
Di dalam Str1,
substring tang ditemukan pada 10
Jumlah karakter
yang disalin = 11
Jika Anda i
Jika Anda ingin
bergabung dengan kami,
|
FUNGSI find_first_not_of(),
find_last_not_of(), find_first_of(), find_last_of(), dan replace()
Kode untuk fungsi find_first_not_of()
untuk Str1 dan Str2 adalah:
Str2.find_first_not_of(Str1);
Nilai balik dari fungsi ini adalah nilai indeks dari elemen pertama dari Str2 yang bukan elemen dari Str1. Fungsi find_last_not_of()untuk Str1
dan Str2 adalah:
Str2.find_last_not_of(Str1);
Nilai balik dari fungsi ini adalah nilai indeks dari elemen terakhir dari Str2 yang bukan elemen dari Str1. Aplikasi dari kedua fungsi ini
dan dua fungsi lain diilustrasikan pada program berikut.
Program 8.7 Mengilustrasikan aplikasi
dari fungsi find_first_not_of(), find_last_not_of(),
find_first_of(), find_last_of(), dan replace()
|
|
|
#include <iostream>
#include <string>
using namespace std;
int main()
{
string
Str1, Str2, Str3(6, 'B') ;
Str1 = "SELAMAT DATANG!";
Str2 = "Apakah Anda akan berangkat ke
Siantar?";
cout<<(Str2.find_first_not_of(Str1))<<endl;
cout<<(Str2.find_last_not_of(Str1))<<endl;
cout<<(Str2.find_first_of(Str1))<<endl;
cout<<(Str2.find_last_of(Str1))<<endl;
Str3.replace(1,5 ,"Jakarta");
//mengganti 5 elemen Str3 diawali dari
indeks 1
cout<<"Sekarang Str3 =
"<< Str3<<endl;
return
0;
}
|
KELUARAN
|
|
1
37
0
30
Sekarang Str3 =
BJakarta
|
8.6 Array yang
Memuat String-String C++
Sebuah array yang memuat string-string dapat dideklarasikan sebagai:
string S[n];
Di sini, string adalah tipe
(nama kelas), S adalah nama array, dan n adalah jumlah string yang ada di dalam
array. Setiap elemen array diakses dengan nilai indeksnya di dalam array.
Aplikasinya diilustrasikan pada program berikut.
Program 8.8 Mengilustrasikan array
yang memuat string-string
|
|
|
#include <iostream>
#include <string>
using namespace std;
int main()
{
string
S1, S2[4], S3;
string
Nama[4] = {"John", "Kristof", "Vivian",
"Robert"};
for
(int i =0; i < 4; i++)
S2[i] = Nama[i]; //menugaskan elemen-elemen array kepada S2
for(int k=0; k<4; k++)
cout<<S2[k]<<" "; //menampilkan elemen-elemen array S2
S1 = " , Selamat mempelajari C++!
";
string Psn[4];
cout<<"\n";
for(int j =0; j<4; j++)
{
Psn[j] = S2[j]. append (S1);
//menempatkan S1 (di akhir) elemen-elemen dari S2
//dan menugaskan
hasilnya kepada elemen-elemen dari Psn[]
cout<<"Psn["<<j<<"] =
"<<Psn[j]<<endl;
}
return
0;
}
|
KELUARAN
|
|
John Kristof
Vivian Robert
Psn[0] = John ,
Selamat mempelajari C++!
Psn[1] =
Kristof , Selamat mempelajari C++!
Psn[2] = Vivian
, Selamat mempelajari C++!
Psn[3] = Robert
, Selamat mempelajari C++!
|
LATIHAN
1.
Apakah
perbedaan antara string-C dan string C++?
2.
Apakah string
C++ memiliki karakter Null di akhir string itu?
3.
Apakah metode-metode untuk
mengkonstruksi string C++?
4.
Apa sajakah operator yang dapat
diterapkan pada string C++?
5.
Apakah string-C juga mendukung
operator-operator yang didukung oleh string C++?
6.
Apakah perbedaan antara fungsi size() dan fungsi capacity()?
7.
Apakah aksi dari setiap fungsi string
C++ berikut?
a.
append()
b.
assign()
c.
capacity()
d.
size()
e.
at()
8.
Apakah aksi dari setiap fungsi string
C++ berikut?
a.
compare()
b.
copy()
c.
data()
d.
find()
e.
find_first_of()
f.
find_last_of()
9.
Tuliskan
program untuk mengilustrasikan aksi dari tiap fungsi dari kelas string berikut:
a.
reserve()
b.
replace()
c.
max_size()
d.
getline()
e.
insert()
f.
length()
10.
Bagaimana Anda mengkonversi
sebuah string C++ menjadi string-C ekivalennya?
11.
Tuliskan
program untuk mengilustrasikan aksi dari tiap fungsi dari kelas string berikut:
a.
clear()
b.
resize()
c.
refind()
12.
Apakah yang
Anda pahami tentang statemen berikut yang melibatkan fungsi erase(), dimana Str adalah nama string.
a.
Str.erase(4, 3);
b.
Str.erase(12);
c.
Str.erase();
13.
Tuliskan sebuah
program untuk mengilustrasikan fungsi length()
dan size().
14.
Apakah yang
terjadi jika kode Str1.append(Str2);
dieksekusi?
15.
Tuliskan sebuah
program untuk mengilustrasikan aksi dari tiap operator berikut: ==, !=, dan =
pada string.
Jawaban:
Program 8.9Mengilustrasikan aplikasi
dari beberapa operator relasional pada string
|
|
|
#include <iostream>
#include<string>
using namespace std;
int main()
{
string Str1 = "Hallo! Selamat
Pagi!";
string Str2 = "Begitu juga untuk
Anda";
string Str3 = "Mari belajar
C++";
if(Str3
!=Str2)
cout<<"Str3 dan Str2
berbeda."<<endl;
cout<<(Str1 == Str2 ?
"True": "False" )<<"\n";
cout<<"Sebelum penugasan\n Str1
= "<<Str1<<endl;
cout<<" dan \n Str2 =
"<<Str2<<endl;
Str3 = Str2 = Str1;
cout<<"Setelah
penugasan"<<endl;
cout<<" Str1=
"<<Str1<<"\n Str2 = "<<Str2 <<"\n
Str3 = " <<Str3 <<endl;
return
0 ;
}
|
KELUARAN
|
|
Str3 dan Str2
berbeda.
False
Sebelum
penugasan
Str1 = Hallo! Selamat Pagi!
dan
Str2 = Begitu juga untuk Anda
Setelah
penugasan
Str1= Hallo! Selamat Pagi!
Str2 = Hallo! Selamat Pagi!
Str3 = Hallo! Selamat Pagi!
|
No comments:
Post a Comment