Minggu, 07 Januari 2018

KARAKTER DAN STRING



1.  Operasi Karakter

Fungsi-fungsi pustaka untuk opersai karakter berada pada file judul ctype.h.
a. Menyeleksi Status Karakter
Fungsi-fungsi pustaka atau mako yang dapat digunakan adalah :

Nama Makro      Kelompok kode ASCII                             Keterangan
                           untuk nilai benar  

isascii(c)              0-127                                                       Karakter berkode ASCII 0 s/d 127

iscntrl(c)              0-31 dan 127                                           Karakter-karakter control

isspace(c)             9,10,13,32                                               Karakter spasi, backspace dan enter                                                                                                          (whitespace karakter)

isgraph(c)            33-126                                                     Karakter yg dapat dicetak selain spasi

isprint(c)             33-126                                                     Semua karakter yg dpt dicetak

ispunch(c)           33-47,58-64,91-96,123-126                    Karakter  yg  dapat  dicetak kecuali spasi,                                                                                                 huruf dan agka.

isalnum(c)           348-57,65-90,97-122                              Karakter huruf dan angka

isalpha(c)            65-90,97-122                                           Karakter-karakter huruf

islower(c)            97-122                                                    Karakter huruf kecil

isupper(c)            65-90                                                      Karakter huruf besar

isdigit(c)              48-57                                                      Karakter-karakter angka


Makro-makro ini akan menghasilkan nilai benar (True) jika nilai karakter yang diseleksi termasuk dalam status kelompoknya.

Contoh1 :
#include<stdio.h>
#include<conio.h>   //file header untuk fungsi getche()
#include<ctype.h>  //file header untuk fungsi isspace(c)
#define lagi 1 main() {
int karakter;
do { karakter = getche();           // menerima input data karakter tanpa enter if(isspace(karakter)) break; } /*bila yg diinput berupa spasi, backspace,   tab atau  enter maka keluar dari proses looping*/
while(lagi);    /*looping dilakukan selama menerima input*/    
}

Contoh2 :
#include<stdio.h>
#include<conio.h>
#include<ctype.h>  
main() {
int input;
input = getche();    //input tanpa penekanan enter
if(isalpha(input))
printf(“  adalah huruf\n”); 
   else printf(“  bukan huruf\n”); 
}
output :   d  adalah huruf
                1  bukan huruf

ket : if(isalpha(input)) printf(“adalah huruf\n”);  artinya bila input benar berisi karakter huruf  maka akan dicetak adalah huruf dan bila tidak akan mencetak bukan huruf.

b. Mengkonversi Nilai Karakter fungsi : 
tolower() : merubah karakter huruf besar menjadi huruf kecil toupper() : merubah karakter huruf kecil menjadi besar

Contoh :
#include<stdio.h>
#include<conio.h>
#include<ctype.h>   
main() {
char kata = „A‟,jawab;
do {
printf(“%c %c\n”, tolower(kata),toupper(„b‟)); 
printf(“Mau coba lagi : “); 
jawab = getchar();    }
while(toupper(jawab) = = „Y‟ );  }

Ouput :
    a B
    Mau coba lagi : y
    a B
    Mau coba lagi : t

Ket : program diatas akan mencetak A menjadi huruf kecil dan B menjadi huruf besar. Perintah while(toupper(jawab) ==‟Y‟) berarti looping akan dilakukan selama jawab = „Y‟ atau „y‟ karena toupper(„y‟) = „Y‟.

2. Operasi String
Suatu string merupakan array dari karakter. Nilai suatu string ditulis dengan tanda petik dua. Suatu nilai string disimpan di memory dengan diakhiri oleh nilai „\0‟ (null). “ABC” disimpan menjadi A B C „\0‟
Inisialisasi String : 
char kota[ ] = {„C‟,‟o‟,‟r‟,‟v‟,‟a‟,‟l‟,‟l‟,‟i‟,‟s‟,‟\0‟};     
char kota[10] = “Corvallis” ;
      char kota[ ] = “Corvallis” ;

Konstatnta srting, sebagaimana halnya nama array, diperlakukan oleh kompiler sebagai sebuah pointer. Maka pernyataan berikut sama dengan inisialisasi di atas.
      char *kota = “CORVALLIS”;

perintah :
printf(“%s, %c%c”, kota, kota[1],kota[2]); Output : CORVALIS, OR
%s kode format untuk kota berarti mencetak CORVALLIS. %c, kota[1] berarti mencetak elemen array ke-1 dari kota yaitu „O‟, %c,kota[2] berarti mencetak elemen array ke-2 dari kota yaitu „R‟.
 Seperti halnya Array, String bila tidak diberi nilai awal maka ukuran karakter harus ditulis, Misal     : char Nama[20];
Atau boleh ditulis sebagai pointer   : char *Nama ;


Fungsi2 standar string terdapat pada file judul string.h
1. Menyalin string
Fungsi : strcpy()
Bentuk : srtcpy(string1,string2). Nilai string2 akan dicopy ke string1.
Contoh :  strcpy(kota, “satu”) maka string satu akan dicopy ke variable kota.
2. Menghitung panjang string 
Fungsi : strlen()
Contoh : strlen(“Corvallis”) maka akan dihasilkan nilai 9
3. menggabungkan string fungsi : strcat(string1,string2). Nilai string1 akan digabung dengan string2 dan disimpan didalam string1.
Contoh : char kota[]=”satu”;
      strcat(kota, “dua”) maka kota[ ] = “satudua”
4. Mencari Nilai karakter di string
Fungsi : strchr()
Contoh : char String[ ] =”Abcde”; char *hasil ;
      Hasil = strch(String, „B‟); printf(“%s”, hasil); 
      Maka Hasil akan bernilai “Bcde”
5. Membandingkan dua nilai string
Fungsi : strcmp()
Membandingkan dua nilai string akan menghasilkan nilai integer berupa :
- > 0 bila sring pertama lebih kecil daripada string kedua
- 0 bila string pertama = string kedua
- < 0 bila string pertama lebih besar dari string kedua

Contoh program :
#include <stdio.h>
#include “string.h”
int main( ) { 
char kata1[ ] = “Ibu Kota”, *kata2 = “ Jakarta”, data1[ ] ={„A‟,‟B‟,‟c‟,‟d‟,‟\0‟}; 
char data2[ ] = “ABCD”,*baru ; int hasil;
printf(“panjang string kata1 : %d \n”,strlen(kata1); //menghitung panjang “Ibu Kota” 
strcat(kata1,kata2);                    //mengabung kata1&kata2 disimpan di kata1 
printf(“nilai string kata1 setelah operasi : %s \n”,kata1);
strcpy(kata2,data1);                  //mencopy string data1 disimpan di kata2 
printf(“nilai string kata2 setelah operasi : %s \n”,kata2); 
hasil = strcmp(data1,data2);    //membandingkan data1 dan data2 
if (hasil = = 0) printf(“Data1 sama dengan data2”)   
else if(hasil< 0) printf(“Data1 lebih kecil dari data2”);   
else printf(“Data1 lebih besar dari data2”);
baru = strchr(data2,’C’);       //mencari karakter‟C‟ pada data2, hasil disimpan di baru
printf(“\nHasil mencari karakter C : %s”, baru);
return 0;                                 //nilai balik ke fungsi main  
}

Output :  panjang string kata1 : 8
     Nilai string kata1 setelah operasi : Ibu Kota Jakarta
     Nilai string kata2 setelah operasi : ABcd
     Data1 lebih besar dari data2
     Hasil mencari karakter C : CD


Nilai yang tersimpan pada tiap variabl setelah operasi :
kata1= “Ibu Kota Jakarta” karena menyimpan hasil operasi strcat(kata1,kata2). kata2 = “Abcd” karena menyimpan hasil opersi strcpy(kata2,data1) data1 = “Abcd” data2 = “ABCD”
hasil  = lebih besar dari nol karena karakter „c‟ lebih besar dari „C‟ baru   = “CD”

    






Tidak ada komentar:

Posting Komentar