Menulis string OPERASI STRING

2008 | Direktorat Pembinaan SMK 317 char first[S_LENGTH], second[S_LENGTH]; cout masukan string dengan tidak lebih dari S_LENGTH ‐ 1 karakter:\n ; cin.getlinefirst, S_LENGTH; stringCopyfirst, second; cout String yang anda masukan adalah:\n second endl; getch; return ; } Definisi Fungsi stringCopy void stringCopychar string1[], char string2[] { int index = ; while string1[index] = \0 { string2[index] = string1[index]; index++; } string2[index] = \0; } Keluaran program diatas adala sebagai berikut: masukan string dengan tidak lebih dari 29 karakter: hello saya sedang belajar String yang anda masukan adalah: hello saya sedang belajar Yang perlu diperhatikan pada program diatas adalah pada fungsi stringCopy yang tidak menerima satu bentuk array. Program tersebut hanya melakukan copy karakter- karakter dari string1 ke dalam string2 sampai menemui sebuah hal yang dapat mengakhiri atau tanda null dalam string1. Ketika sebuah tanda yang mengakhiri tersebut ditemukan dan pengulangan sudah mencapai ujung dri string, statemen terakhir dalam fungsi memberi suatu tanda batal karakter \0 hingga selesai string2, dengan demikian hal tersebut dapat diakhiri dengan baik. Program dibawah menggunakan handling function fungsi untuk menangani string: nameSlice. Program akan minta pengguna itu untuk memasukan nama awal dan akhir pengguna, yang dipisahkann oleh spasi. Kemudia fungsi mencari string untuk spasi dan mengganti 318 Direktorat Pembinaan SMK| 2008 dengan suatu terminator akhir. Perhatikan program dibawah ini: Program 8.15 includeconio.h include iostream using namespace std; void potogannamachar []; int main { const int PANJANG_NAMA = 41 ; char name[PANJANG_NAMA]; cout Masukan nama depan dan nama akhir Anda dengan dipisahkan ; cout dengan spasi:\n ; cin.getlinename, PANJANG_NAMA; potogannamaname; cout Nama pertama anda adalah: name endl; getch; return ; } Definisi Fungsi potogan nama. void potogannamachar userName[] { int count = ; while userName[count] = userName[count] = \0 count++; if userName[count] == userName[count] = \0; } Keluaran program diatas adalah sebagai berikut: Masukan nama depan dan nama akhir Anda dengan dipisahkandengan spasi: Supra indonesia Nama depan anda adalah: supra Pengulangan pada variabel potongannama dimulai saat karakter yang pertama dalam array dan melakukan scan string, kemudian mencari baik sebuah spasi atau terminator null: 2008 | Direktorat Pembinaan SMK 319 while userName[count] = userName[count] = \0 count++; Jika karakter dalam userName[count] bukanlah sebuah spasi atau terminator null, count akan ditambah dengan karakter berikutnya yang akan diuji. Dengan contoh memasukan string nama depan dan nama belakang supra indonesia”, pada program pengulang- an menemukan pemisah spasi “suprapto” dan “indonesia”, pada userName[5]. Ketika pengulangan berhenti, count diatur sampai 5. Akan lebih jelasnya jika memperhatikan gambar dibawah ini: Perulangan akan berhenti ketika menemukan tanda spasi atau userName[5] s u p r a i n d o n e s i a \0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 subskrip Begitu pengulangan sudah diselesaikan, userName[count] akan berisi salah satu spasi atau terminator null. Jika berisi spasi, dan diikuti tanda if statemen kemudian menggantikannya dengan terminator null: if userName[count] == userName[count] = \0; sehingga dapat diilustrasikan seperti pada gambar dibawah ini: Ruangan diberi \0 atau tanda sebagai string selesai s u p r a \0 i n d o n e s i a \0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 subskrip

8.12. Pointer untuk menguraikan String

Penunjuk pointer sangat bermanfaat untuk menulis sebuah fungsi proses pada string. Jika alamat awal sebuah string berubah menjadi sebuah variabel parameter penunjuk pointer, maka akan dapat diasumsikan bahwa semua karakter dari alamat tertinggi akan menahan tanda null menjadi bagian dari string. Program dibawah menunjukkan sebuah fungsi, countChars, yang menggunakan penunjuk pointer untuk 320 Direktorat Pembinaan SMK| 2008 menghitung jumlah karakter khusus muncul didalam string. Program 8.16 includeconio.h include iostream using namespace std; Fungsi prototipe int countCharschar , char; int main { const int PANJANG_S = 51 ; char userString[PANJANG_S], letter; cout Masukan String lebih dari PANJANG_S‐ 1 karakter: ; cin.getlineuserString, PANJANG_S; cout Masukan karakter dan saya akan menghitung berapa\n ; cout kali yang muncul dalam string yang telah anda tulis: ; cin letter; cout letter Muncul: ; cout countCharsuserString, letter kali.\n ; getch ; return ; } Definisi countChars. int countCharschar strPtr, char ch { int times = ; while strPtr = \0 { if strPtr == ch times++; strPtr++; } return times; } Keluaran program diatas adalah sebagai berikut: