8.5. Operator logika NOT
Beberapa para programmer lebih suka menggunakan operator logika NOT dengan strcmp ketika menguji persamaan string-string. Karena logika 0 dipertimbangkan sebagai logika salah, operator ! akan mengkonversi nilai tersebut menjadi benar. Ekspresi strcmp (string1, string2) akan kembali benar jika kedua string adalah sama, dan salah ketika string berbeda. Pada kedua statemen berikut melaksanakan operasi yang sama: if(strcmp(firstString,secondString)==0) if(!strcmp(firstString,secondString))
8.6. Pengurutan String
Program sering ditulis dengan dicetak berurutan menurut daftar abjad. Misalnya penggunaan sistem komputer pada sebuah toko serba ada untuk menyimpan nama dan alamat pelanggan dalam sebuah file. Nama-nama tersebut tidak akan muncul dalam file yang berurutan menurut abjad tetapi dalam order atau pesanan, dimana sesuai operator memasukkan mereka. Jika suatu daftar tersebut dicetak dalam urutan pesanan tersebut, maka akan menjadi sangat sulit untuk menempatkan setiap nama tersebut. Daftar tersebut mau tidak mau harus diurutkan sebelum dicetak. Karena nilai yang dikembalikan oleh strcmp berdasarkan pada urutan alfabet relative pesanan dari kedua string yang sedang dibandingkan, maka hal tersebut dapat digunakan dalam program untuk jenis string pendek. Program dibawah akan meminta pemakai untuk memasukan dua nama, yang kemudian dicetak dalam secara urutan alfabet pemesan. Program 8.8
#include<conio.h> #include<iostream> #include<cstring> usingnamespacestd; intmain() { constintPANJANG_NAMA=30; charname1[PANJANG_NAMA],name2[PANJANG_NAMA]; cout<<"MasukanNama(lastName):"; cin.getline(name1,PANJANG_NAMA); cout<<"MasukanNamaLain:"; cin.getline(name2,PANJANG_NAMA); cout<<"Disininamaakandiurutkanberdasarkanalphabet:\n"; if(strcmp(name1,name2)<0) cout<<name1<<endl<<name2<<endl; elseif(strcmp(name1,name2)>0) cout<<name2<<endl<<name1<<endl; else cout<<"AndamemasukannamayangSAMA!\n"; getch(); return0; }
Keluaran program diatas adalah sebagai berikut: MasukanNama(lastName):suprapto MasukanNamaLain:anwar Disininamaakandiurutkanberdasarkanalphabet: anwar suprapto setelah mempelajari beberapa program string diatas, dibawah ini merupakan tabel ringkasan sebuah penanganan fungsi string.
Tabel 8.1. Fungsi untuk menangani string
FUNGSI PENJELASAN strlenMenerimastringsebagaiargumen.Pernyataanpanjangstring(tidak termasuknullterminator.ContohPenggunaan:len=strlen(nama); strcatMenerimaduastringsebagaiargumen.Fungsimenambahkanisistring keduauntukpertamastring.(Yangpertamaadalahstringdiubah,kedua stringtersebutdibiarkantidakberubah.) ContohPenggunaan:strcat(string1,string2); strcpyMenerimaduastringsebagaiargumen.Fungsisalinankeduastringuntuk pertamastring.Stringmiliknyakeduastringdibiarkantidakberubah. ContohPenggunaan:strcpy(string1,string2); strncpyMenerimaduastringdanargumeninteger.Argumenyangketiga,sebuah integer,menunjukkanberapabanyakkarakteryangdicopydaristring keduamenujustringpertama.Jikakurangdaristring2sebanyakn karakter,string1adalahditambahkandengandengankarakter'\0'. ContohPenggunaan:strncpy(string1,string2,n); strcmpMenerimaduastringargumen.Jikastring1danstring2sama,fungsiini memberikanhasil0.Jikastring2alfabetnyalebihbesardaristring1,ia kembaliangkanegatif.jikaString2alfabetnyakurangdaristring1,ia kembaliangkapositif. ContohPenggunaan:if(strcmp(string1,string2)) strstrPencarianuntukpertamaterjadinyastring2dalamstring1.Jikaterjadinya string2ditemukan,fungsiakanmengembalikanpointerstringpertama. Jikatidak,iaakanmengembalikanNULLpointer(alamat0).Contoh Penggunaan:cout<<strstr(string1,string2
Next read ON halaman 8