Class String pada C++

322 Direktorat Pembinaan SMK| 2008 int main { string ucapan; string nama suprapto ; ucapan = Halo ; cout ucapan nama endl; getch; return ; } Keluaran program diatas adalah sebagai berikut: Halo suprapto Supaya dapat membuah program selain contoh program diatas, perhatikan tabel pemakaian konsruktor string yang diberikan dalam tabel dibawah ini: Tabel 8.5. Pemakaian Konsruktor String DEFINITION DESCRIPTION string alamat; Definisi objek string yang langsung disebutkan string namasuprapto; Mendefinisikan string benda bernama nama, diinisialisasi dengan suprapto string person1person2; Mendefinisikan string benda bernama person1, yang merupakan salinan dari person2. person2 mungkin salah satu objek atau string karakter array. string set1set2, 5; Mendefinisikan string bernama set1 objek yang diinisialisasi untuk pertama lima karakter dalam karakter array set2. string lineFullz, 10; Mendefinisikan string benda bernama lineFull diinisialisasi dengan 10 z karakter. string firstNamefullName, 0, 7; Mendefinisikan string benda bernama firstname, diinisialisasi dengan substring dari string fullName. Substring adalah tujuh karakter, mulai pada posisi 0. Hal yang perlu diketahi pada program dibawah, menggunakan operator = untuk memberi nilai obyek string. class string memberi muatan lebih pada beberapa operator, yang digambarkan pada Tabel dibawah. 2008 | Direktorat Pembinaan SMK 323 Tabel 8.6. Operator String OVERLOADED PENJELASAN OPERATOR Ekstrak karakter stream dan masukkan karakter ke dalam string. Karakter akan dicopy sampai menemui spasi atau akhir kalimat dan sekaligus menhitung karakter masukan. Menyisipkan string ke dalam stream. = Memasukan string pada sebelah kanan ke obyek string pada sebelah kiri. += Menambahkan copyan string pada string sebelah kanan ke obyek string pada sebelah kiri. + Mengembalikan string yang merupakan rangkaian dari dua operand string [] Melaksanakan tanda notasi array, seperti nama [x]. dimana hal tersebut merujuk pada karakter pada pengembalian posisi x. Relational Operators Masing ‐masing operator penghubung diimplementasikan: = = == = Program dibawah digunakan untuk mendemontrasikan sebagian dari operator string Program 8.18 include iostream include string using namespace std; int main { string str1, str2, str3; str1 = ABC ; str2 = DEF ; str3 = str1 + str2; cout str1 endl; cout str2 endl; cout str3 endl; str3 += GHI ; cout str3 endl; return ; } Keluaran program tersebut diatas adalah sebagai berikut: ABC DEF ABCDEF ABCDEFGHI Class string juga mempunyai beberapa fungsi anggota. Sebagai contoh, fungsi size mengembalikan panjang string. Hal tersebut didemontrasikan dalam pengulangan For pada program dibawah ini: 324 Direktorat Pembinaan SMK| 2008 Program 8.19 includeconio.h include iostream include string using namespace std; int main { string str1, str2, str3; str1 = ABC ; str2 = DEF ; str3 = str1 + str2; for int x = ; x str3.size; x++ cout str3[x]; cout endl; if str1 str2 cout str1 adalah lebih kecil daripada str2\n ; else cout str1 tidak lebih kecil daripada str2\n ; getch; return ; } Keluaran program diatas adalah sebagai berikut: ABCDEF str1 adalah lebih kecil daripada str2 Tabel dibawah ini merupakan daftar dari banyak string yang merupakan anggota class string variasi yang dibebankan. Tabel 8.7. Class String Keanggotaan Fungsi ANGGOTA FUNGSI PENJELASAN theString.appendstr; Menambahkan str ke theString. str bisa menjadi objek atau string karakter array. theString.appendstr, x, n; n jumlah karakter dari str, dimulai pada posisi x, akan ditambahkan ke theString. jika TheString terlalu kecil, fungsi akan melakukan copy sejumlah karakter yang mungkin bisa dicopy. 2008 | Direktorat Pembinaan SMK 325 theString.appendstr, n; N karakter pertama dari array karakter str yang ditambahkan ke theString. theString.appendn, z; N menambahkan salinan z untuk theString. theString.assignstr; Memberikan str ke theString. Parameter str dapat menjadi obyek string atau C‐string. theString.assignstr, x, n; jumlah n karakter dari str, dimulai pada posisi x, ditugaskan ke theString. jika TheString terlalu kecil, fungsi akan menyalin banyak karakter mungkin. theString.assignstr, n; karakter pertama n dari array karakter str ditugaskan ke theString. theString.assignn, z; Memberikan salinan n z menuju theString. theString.atx; Mengembalikan karakter pada posisi x dalam string. theString.begin; Kembali pada sebuah iterator yang menunjuk ke karakter pertama pada string. theString.capacity; Mengembalikan ukuran penyimpanan dialokasikan untuk string. theString.clear; Membersihkan string dengan menghapus semua karakter yang disimpan di dalamnya. theString.comparestr; Melakukan perbandingan seperti fungsi strcmp dengan nilai yang sama kembali. str bisa menjadi string objek atau karakter array. theString.comparex, n, str; Membandingkan theString dan str, mulai dari posisi x, dan dilanjutkan terus untuk n karakter. pengembalian nilai seperti strcmp. str bisa menjadi objek string atau karakter array. theString.copystr, x, n; menyalin karakter str ke array theString, mulai pada posisi x, untuk n karakter. TheString jika terlalu kecil, maka fungsi akan menyalin karakter semampu mungkin. theString.c_str: Mengembalikan nilai C‐string string objek. theString.data; Kembali karakter array yang berisi null string dihentikan, karena disimpan dalam theString. theString.empty; Returns true jika theString kosong. Returns true if theString is empty. theString.end; Kembali ke sebuah iterator yang terakhir karakter dari string di theString. Untuk informasi lebih lanjut tentang iterators, lihat Bab 15. Returns an iterator pointing to the last character of the string in theString. For more information on iterators, see Chapter 15. theString.erasex, n; Erases n karakter dari theString, mulai di posisi x. 326 Direktorat Pembinaan SMK| 2008 Erases n characters from theString, beginning at position x. theString.findstr, x; Kembali posisi pertama di luar atau di mana posisi x string str ditemukan di theString. Parameter str mungkin salah satu objek string atau C‐string. Str jika tidak ditemukan, posisi diluar akhir theString dikembalikan. Returns the first position at or beyond position x where the string str is found in theString. The parameter str may be either a string object or a C‐ string. If str is not found, a position beyond the end of theString is returned. theString.findz, x; Kembali posisi pertama di luar atau di mana posisi x z yang ditemukan di theString. Returns the first position at or beyond position x where z is found in theString. theString.insertx, str; Menyisipkan salinan str ke theString, mulai di posisi x. str mungkin salah satu objek atau string karakter array. Inserts a copy of str into theString, beginning at position x. str may be either a string object or a character array. theString.insertx, n, z; Menyisipkan z n kali menuju theString di posisi x. theString.length; Pernyataan panjang string di theString. Returns the length of the string in theString. theString.replacex, n, str; Menggantikan n karakter di awal theString di posisi x dengan karakter dalam string str objek. Replaces the n characters in theString beginning at position x with the characters in string object str. theString.resizen, z; Perubahan besarnya alokasi di theString ke n. N kurang jika dibandingkan dengan ukuran string, string yang dipotong untuk n karakter. Jika n lebih besar, string yang diperluas dan z yang ditambahkan pada akhir waktu yang cukup untuk mengisi ruang‐ruang baru. Changes the size of the allocation in theString to n. If n 2008 | Direktorat Pembinaan SMK 327 is less than the current size of the string, the string is truncated to n characters. If n is greater, the string is expanded and z is appended at the end enough times to fill the new spaces. theString.size; Pernyataan panjang string pada theString. theString.substrx, n; Kembali melakukan salinan suatu substring. The substring adalah n karakter dan mulai pada posisi x dari theString. theString.swapstr; Swaps isi dengan theString str.

8.14. Membuat Class String Sendiri

Class string pada bahasa C++ secara otomatis menangani banyak tugas-tugas yang terlibat dalam penggunaan string, seperti alokasi memori dinamis dan memeriksa margin dan lain sebagainya. Ia juga merupakann operator overload seperti + dan =, dan juga memiliki banyak anggota fungsi yang memudahkan dalam bekerja dengan string. Dalam beberapa bagian, kita harus membuat sebuah data tipe string dengan banyak kelas fungsi C++. Dalam proses, kita lihat misalnya pada contoh copy constructor keberatan dan operator penuh aksi, serta contoh-contoh teknik pemrograman yang berguna sebagai solusi dari berbaai masalah. Kelas MyString yang ditetapkan dalam bagian ini adalah jenis data abstrak untuk menangani string. Memiliki banyak keunggulan yang dimiliki oleh kelas C++ string yang diberikan oleh Standard Template Library:  Memori yang dteralokasi secara dinamis untuk setiap string yang tersimpan dalam MyString objek. Programmer yang menggunakan kelas ini tidak perlu khawatir dengan seberapa besar untuk membuat array.  Strings mungkin akan ditugaskan ke objek dengan MyString = operator. Programmer yang menggunakan kelas ini tidak perlu memanggil fungsi strcpy.  Satu string mungkin concatenated lain dengan + = operator. Ini menghilangkan kebutuhan untuk fungsi strcat.  Strings mungkin akan diuji untuk kesetaraan dengan == operator. Programmer yang menggunakan kelas ini tidak perlu memanggil fungsi strcmp. Pada sebuah Kelas MyString memiliki pointer sebagai anggota dan secara dinamis mengalokasikan memori untuk menyimpan nilai string, konstruksi salinan disediakan. Fungsi ini akan menyebabkan objek diatur dengan benar datanya ketika diinisialisasi dengan obyek MyString lain. Kelas MyString memiliki 2 overloaded = operator. Yang pertama adalah untuk menempatkan satu MyString ke objek lain. fungsi Operator ini dipanggil ketika operand di sebelah kanan dari tanda = adalah 328 Direktorat Pembinaan SMK| 2008 MyString objek, seperti yang terlihat pada segmen kode berikut: MyString first Hello , second; second = first; Kedua versi MyString = dari operator untuk menempatkan tradisional string ke MyString objek. Operator fungsi ini dipanggil ketika operand di kanan = adalah sebuah string konstan atau pointer ke sebuah string seperti nama sebuah char array. Hal ini ditunjukkan pada segmen program berikut: MyString name; char who[] = Jimmy ; name = who; Operator + = dirancang untuk menggabungkan string pada MyString kanan ke kiri pada objek. Seperti operator =, MyString memiliki dua versi =. + Versi pertama ini dirancang untuk bekerja pada saat yang tepat operand adalah MyString obyek lain, seperti yang ditunjukkan dalam program ini segmen: MyString first Hello , second world ; first += second; Kedua versi dari operator + = akan dipanggil ketika operand sebelah kanan adalah string literal atau pointer ke karakter : MyString first Hello ; first += World ; Objek MyString yang memiliki kelebihan beban versi dari operator == untuk melakukan ujian kesetaraan. Seperti operator lainnya, versi yang pertama dirancang untuk bekerja dengan objek MyString lainnya dan yang kedua dirancang untuk bekerja dengan string C++ konvensional. == Fungsi akan kembali jika string berada di sebelah kanan operand sesuai dengan anggota str panggilan objek. Jika kedua operands string tidak cocok, fungsi return false. fungsi Operator ini memungkinkan programmer menggunakan kelas ini untuk membangun penghubung ekspresi seperti ini: MyString name1 Supra , name2 Supra ; if name1 == name2 cout nama adalah sama.\n ; else cout nama adalah berbeda\n ; MyString name1 Suprapto ; if name1 == Supra cout nama adalah sama.\n ; else cout nama adalah berbeda.\n ; Objek MyString memiliki dua versi yan berkelebihan beban lebih besar daripada operator untuk melakukan tes, dan operator untuk melakukan kurang dari tes. Versi pertama dari masing-masing dirancang untuk bekerja dengan objek lain MyString dan yang kedua ini dirancang untuk bekerja dengan C + + tradisional string. fungsi perpustakaan menggunakan fungsi strcmp untuk menentukan apakah sebuah lebih daripada atau kurang daripada hubungan yang ada. Sebuah fungsi return benar jika str anggota panggilan objek lebih besar daripada string dalam operand