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: PerulanganakanberhentiketikamenemukantandaspasiatauuserName[5] supraindonesia\0 012345678910 111213 141516 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: Ruangandiberi\0atautandasebagaistringselesai supra\0indonesia\0 012345678910 111213 141516 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 menghitung jumlah karakter khusus muncul didalam string.
Program 8.16
#include<conio.h> #include<iostream> usingnamespacestd; //Fungsiprototipe intcountChars(char*,char); intmain() { constintPANJANG_S=51; charuserString[PANJANG_S],letter; cout<<"MasukanString(lebihdari"<<PANJANG_S‐1<<"karakter):"; cin.getline(userString,PANJANG_S); cout<<"Masukankarakterdansayaakanmenghitungberapa\n"; cout<<"kaliyangmunculdalamstringyangtelahandatulis:"; cin>>letter; cout<<letter<<"Muncul:"; cout<<countChars(userString,letter)<<"kali.\n"; getch(); return0; } //DefinisicountChars. intcountChars(char*strPtr,charch) { inttimes=0; while(*strPtr!='\0') { if(*strPtr==ch) times++; strPtr++; } returntimes; }
MasukanString(lebihdari50karakter):sayaakanpergiberangkatkekantor Masukankarakterdansayaakanmenghitungberapa kaliyangmunculdalamstringyangtelahandatulis:a aMuncul:7kali. Di dalam fungsi countChars, strPtr poin pada string tersebut akan dicari dan ch berisi karakter untuk mencari. Pengulangan while akan di ulangi ketika panjang karakter strPtr poin pada akhir bukan terminator null: while(*strPtr!='\0') Dalam pengulangan, statemen if yang mengikutinya membandingkan karakter strPtr poin dengan karakter didalam ch: if(*strPtr==ch) Jika keduanya sama, variabel times akan diincrement. Statemen yang terakhir dalam pengulangan tersebut adalah: strPtr++; statemen increment menaikan alamat dalam strPtr. Ini menyebabkan strPtr akan menunjuk karakter berikutnya didalam sebuah string. Kemudian pengulangan memulai kembali. Ketika strPtr akhirnya menjangkau terminator null, pengulangan mengakhiri dan fungsi mengembalikan nilai dalam fungsi time. 8.13. Class String pada C++ Dari satu segi pandangan metode pemrograman yang mudah, library standar class string menawarkan beberapa keuntungan pada string. Ketika anda sudah mengetahui dalam bab ini, class string mempunyai beberapa anggota fungsi dan operator yang mempunyai muatan lebih. Hal ini jelas menyederhanakan tugas, seperti penempatan sebuah karakter atau string di dalam suatu string, yang jika dilakukan tanpa fungsi akan mengalami kesulitan dan membosankan untuk melakukan operasi string. Setiap program class string harus menggunakan #include sebagai file header string. Object string dapat diciptakan dengan beberapa construktor. Program dibawah menunjukkan dua construktor class string: sebagai default construktor dan konversi konstruktor string ke menjdai obyek string. Program 8.17 #include<conio.h> #include<iostream> #include<string> usingnamespacestd.
Next read ON halaman 15