Fungsi strcmp Membandingkan string

300 Direktorat Pembinaan SMK| 2008  Hasilnya positif jika string1 mengikuti string2 dalam urutan menurut abjad Perhatikan contoh program dengan menggunakan strcmp untuk menentukan kesamaan dua buah string: ifstrcmpstring1, string2 == cout string adalah sama ; else cout String tidak sama ; Pada program diatas, yang hasilnya salah adalah untuk menguji dua buah string dengan operator relational, dapat ditulis ulang secara benar dengan fungsi strcmp, seperti yang ditunjukkan pada program dibawah ini: Program 8.6 include iostream include cstring using namespace std; int main { const int LENGTH = 40 ; char firstString[LENGTH], secondString[LENGTH]; cout Masukan String: ; cin.getlinefirstString, LENGTH; cout Masukan string lain: ; cin.getlinesecondString, LENGTH; if strcmpfirstString, secondString == cout Yang anda masukan stringnya sama\n ; else cout String tidak sama.\n ; return ; } Keluaran program diatas adalah sebagai berikut: Masukan String: Alfonso[Enter] Masukan string lain: Alfonso[Enter] Yang anda masukan stringnya sama Fungsi strcmp bersifat case- sensitive ketika digunakan untuk membandingkan string. Jika pengguna memasukan Anjing dan anjing pada program diatas, maka akan melaporkan bahwa kedua string tidaklah sama karena ada perbedaan huruf kapital dan kecil pada kata 2008 | Direktorat Pembinaan SMK 301 anjing. Kebanyakan compiler menyediakan strcmp versi tidak standar untuk melaksanakan perbandingan case-insensitive. Sebagai contoh, Borland C++ mempunyai fungsi stricmp. Hal tersebut hampir sama dengan strcmp kecuali mengenai case dari karakter tersebut yang akan diabaikan. Program dibawah ini adalah contoh yang lebih praktis bagaimana strcmp digunakan. Hal tersebut akan minta kepada user untuk memasukan sejumlah angka lebih dari satu sesuai dengan yang mereka beli. Bagian angka merupakan digit, huruf, dan tanda penghubung, sehingga dengan demikian hal tersebut akan disimpan sebagai suatu string. Begitu pengguna memasukan angka, program akan menampilkan harga tersebut. Program 8.7 includeconio.h include iostream include cstring include iomanip using namespace std; int main { const double A_PRICE = 100.00 , B_PRICE = 150.00 ; const int PART_LENGTH = 8 ; char partNum[PART_LENGTH]; cout kode nomer ganda adalah:\n ; cout \tKotak besar, kode nomernya: S147‐29A\n ; cout \tRak Besar, kode nomernya: S147‐29B\n ; cout masukan kode nomer yang ada\n ; cout ingin membeli: ; cin setw 9 ; cin partNum; cout showpoint fixed; cout setprecision 2 ; if strcmppartNum, S147 ‐29A == cout harganya adalah A_PRICE endl; else if strcmppartNum, S147 ‐29B == cout harganya adalah B_PRICE endl; else cout partNum nomer yang dimasukan tidak sah.\n ; getch; return ; 302 Direktorat Pembinaan SMK| 2008 } Keluaran program diatas adalah sebagai berikut: kode nomer ganda adalah: Kotak besar, kode nomernya: S147‐29A Rak Besar, kode nomernya: S147‐29B masukan kode nomer yang ada ingin membeli: S147‐29A[Enter] harganya adalah 100.00

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 strcmpfirstString, secondString == 0 if strcmpfirstString, 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 includeconio.h include iostream include cstring using namespace std; int main 2008 | Direktorat Pembinaan SMK 303 { const int PANJANG_NAMA = 30 ; char name1[PANJANG_NAMA], name2[PANJANG_NAMA]; cout Masukan Nama last Name: ; cin.getlinename1, PANJANG_NAMA; cout Masukan Nama Lain: ; cin.getlinename2, PANJANG_NAMA; cout Disini nama akan di urutkan berdasarkan alphabet:\n ; if strcmpname1, name2 cout name1 endl name2 endl; else if strcmpname1, name2 cout name2 endl name1 endl; else cout Anda memasukan nama yang SAMA\n ; getch; return ; } Keluaran program diatas adalah sebagai berikut: Masukan Nama last Name: suprapto Masukan Nama Lain: anwar Disini nama akan di urutkan berdasarkan alphabet: 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 strlen Menerima string sebagai argumen. Pernyataan panjang string tidak termasuk null terminator. Contoh Penggunaan: len = strlen nama; strcat Menerima dua string sebagai argumen. Fungsi menambahkan isi string kedua untuk pertama string. Yang pertama adalah string diubah, kedua string tersebut dibiarkan tidak berubah. Contoh Penggunaan: strcat string1, string2; strcpy Menerima dua string sebagai argumen. Fungsi salinan kedua string untuk pertama string. String miliknya kedua string dibiarkan tidak berubah. Contoh Penggunaan: strcpy string1, string2; strncpy Menerima dua string dan argumen integer. Argumen yang ketiga, sebuah