BAB X String dan Manipulasinya
DISU USUN OLEH H : ADAM MU UKHARIL BA ACHTIAR, S. .Kom.
DIK KTAT MATA A KULIAH P PEMROGRA AMAN I
k ara akt er null ( ‘\ 0’) . St rin ng sangat m em udahk kan t ugas pem rogram m . Dengan st ring,
pem m rogram d dapat m en nam pilkan pesan ke esalahan, m enam pilk kan prom p pt bagi
m as sukan dari keyboard at aupun m m em berik an n inform asi i pada laya ar dengan m udah.
Ben nt uk um um m dari pen ndeklarasia n dan inis sialisasi se ebuah st ing g adalah sebagai
beri ikut :cha r v a r i ia be l_ st r in n g[ n + 1 ] = { ‘c1 ’,’c2 ’, ..,’cn ’,’\ 0 ’ ’} ;
Dala am pem rog gram an C/ C+ + , k ara kt er null d dapat digun nakan unt u uk m enanda ai akhir
seb uah st ring. . Karena da alam pende eklarasiann nya st ring m m enggunak k an t ipe da at a char
m ak ka set iap ka arakt er aka an m em but t uhkan sat u u byt e dalm m m em ori.C Cat at an Karakt er r null m eru pakan ciri k k has penga akhir st ring pada C da an C+ + .
Suat u st t ring dapat t dikat akan n sebagai st r in g k os son g kalau u st ring t idak ber risi sesuat u u apapun ( “ “ ” ) .
Me endek klarasi kan St tring
Suat u s st ring dapa at dideklara asikan deng gan dua car ra, yait u m enggunaka an array
dan n m engguna akan point e er. Adapun dua bent u uk pendek la arasian st r i ng adalah sebagai beri ikut :
cha r n a a m a _ va r ia a be l[ n + 1 ] ;
a t a u
cha r r * n a m a _ v va r ia be l; DISUSUN OLEH : ADAM MUKHARIL BACHTIAR, S.Kom.
Cara yang pert am a adalah dengan m em buat sebuah array bert ipe char
sebanyak n+ 1 karakt er. Apabila m enggunakan cara pendeklarasian yang pert am a
ini, variabel st ring hanya dapat diisi sebanyak n k arakt er karena byt e t erakhir akan
dit em pat i karak t er null unt uk m engakhiri st ringnya. Sedangkan unt uk cara kedua
adalah dengan m em buat suat u variabel point er bert ipe char yang akan m enunj uk ke
alam at t em pat m enyim pan st ringnya.12
5
4
3
2
1
19 /* Program 10.1 Nama File : Lat-10.1.c Programmer : Adam Mukharil Bachtiar, S.Kom. */ #include <stdio.h> #include <stdlib.h> int main(int argc, char *argv[]) { char nama1[31]; char *nama2="Adam MB"; printf("Masukkan nama pertama: ");fflush(stdin); gets(nama1); printf("Nama pertama = %s\n",nama1); printf("Nama kedua = %s\n\n",nama2); system("PAUSE"); return 0; }
18
17
16
15
14
13
11
Cara pert am a lebih baik dibandingk an dengan cara yang kedua. Cara pendeklarasian yang kedua m em iliki kelem ahan yait u:
10
9
8
7
6
5
4
3
2
1
2. Apabila ingin m engisi secara langsung variabelnya t anpa harus diinisialisasi t erlebih dahulu m aka harus m em int a t em pat t erlebih dahulu ke m em ori unt uk m enam pung dat a st ringnya ( cont ohnya dengan perint ah m alloc) . Unt uk lebih j elasny a buat lah program berik ut ini:
1. Variabel point er st ringnya harus langsung diinisialisasi pada saat pendek larasian. Variabel t ersebut t idak bisa langsung diisi m elalui perint ah input t anpa diinisialisasi t erlebih dahulu.
6 /* Program 10.1 Nama File : Lat-10.1.cpp Programmer : Adam Mukharil Bachtiar, S.Kom. */
DISUSUN OLEH : ADAM MUKHARIL BACHTIAR, S.Kom.
7 #include <cstdlib> 8 #include <iostream>
9 10 using namespace std;
11 12 int main(int argc, char *argv[]) 13 { 14 char nama1[31]; 15 char *nama2="Adam MB"; 16 cout<<"Masukkan nama pertama: ";fflush(stdin); cin.get(nama1,30); 17 cout<<"Nama pertama = "<<nama1<<endl; 18 cout<<"Nama kedua = "<<nama2<<endl<<endl; 19 system("PAUSE"); 20 return EXIT_SUCCESS; 21 }
Hasil eksekusi:
Gam bar 10.1 Hasil eksekusi program Lat 10.1
Fungsi String
Di dalam pem rogram an C/ C+ + disediakan beberapa buah fungsi unt uk
m engolah dat a st ring. Fungsi- fungsi yang disediakan unt uk m engolah dat a st ring adalah sebagai berikut : 1. Menghit ung panj ang karak t er st ring. DISUSUN OLEH : ADAM MUKHARIL BACHTIAR, S.Kom.
3. Menggabungkan st ring.
4. Mem bandingkan dua buah st ring.
5. Mengkonversi isi st ring ke huruf kecil.
6. Mengkonversi isi st ring ke huruf besar.
7. Mencari subst ring.
8. Mem balik isi st r ing.
9. Menggant i isi st ring dengan suat u karakt er.
Unt uk bisa m enggunakan fungsi- fungsi yang t elah disebut kan di at as, di dalam
program C/ C+ + perlu diser t akan file st ring.h ( # include < st ring.h> ) .Menghitung Panjang Suatu String
Bent uk um um fungsi unt uk m enghit ung panj ang suat u st ring adalah sebagai berikut :
st r le n( st r in g) ;
Fungsi ini akan m enghasilkan sebuah angka int eger yang m erupakan panj ang dari
st ring di dalam param et er fungsiny a ( t e r m a suk spa si) . Unt uk lebih j elasnya
buat lah program di baw ah ini:1 /*
2 Program 10.2
3 Nama File : Lat-10.2.c 4 Programmer : Adam Mukharil Bachtiar, S.Kom. 5 */
6 7 #include <stdio.h> 8 #include <stdlib.h> 9 #include <string.h>
10 11 int main(int argc, char *argv[]) 12 { 13 char string[31]; 14 int panjang; 15 printf("Masukkan suatu string : ");fflush(stdin); gets(string); 16 panjang=strlen(string); 17 printf("String yang dimasukkan = %s\n",string); 18 printf("Panjang string = %i\n\n",panjang); 19 system("PAUSE");
DISUSUN OLEH : ADAM MUKHARIL BACHTIAR, S.Kom.
12
23 /* Program 10.2 Nama File : Lat-10.2.cpp Programmer : Adam Mukharil Bachtiar, S.Kom. */ #include <cstdlib> #include <iostream> #include <string.h> using namespace std; int main(int argc, char *argv[]) { char string[31]; int panjang; cout<<"Masukkan suatu string : ";fflush(stdin); cin.get(string,30); panjang=strlen(string); cout<<"String yang dimasukkan = "<<string<<endl; cout<<"Panjang string = "<<panjang <<endl<<endl; system("PAUSE"); return EXIT_SUCCESS; }
22
21
20
19
18
17
16
15
14
13
11
20
10
9
8
7
6
5
4
3
2
1
21 return 0; }
Hasil eksekusi:
Gam bar 10.2 Hasil eksekusi program Lat 10.2
DISUSUN OLEH : ADAM MUKHARIL BACHTIAR, S.Kom.
Menyalin Isi String
Fungsi st r cpy akan m enyalin seluruh isi st ring1 ke st ring2 sedangkan st rncpy akan
m enyalin isi st ring1 ke st ring2 sebanyak j um lah karakt er yang diberikan di
param et er fungsiny a. Unt uk lebih j elasnya buat lah program berik ut ini:14
25 /* Program 10.3 Nama File : Lat-10.3.c Programmer : Adam Mukharil Bachtiar, S.Kom. */ #include <stdio.h> #include <stdlib.h> #include <string.h> int main(int argc, char *argv[]) { char string1[31]; char string2[31]; int k; printf("Masukkan string: ");fflush(stdin); gets(string1); printf("Masukkan jumlah karakter salin: "); scanf("%i",&k); strcpy(string2,string1); printf("Hasil penyalinan strcpy = %s\n",string2); strncpy(string2,string1,k); string2[k]='\0';//menutup string printf("Hasil penyalinan strncpy = %s\n\n",string2); system("PAUSE"); return 0; }
24
23
22
21
20
19
18
17
16
15
13
1
Sebuah v ariabel st ring t idak dapat kit a isi m enggunakan isi variabel st ring
lainnya secara langsung ( variabel2= variabel1) . Unt uk dapat m engisinya diperlukan
suat u fungsi st ring. Bent uk um um dari fungsi unt uk m enyalin isi st ring adalah
sebagai berikut :st r cpy( st r in g2 ,st r in g1 ) ;
a t a u
st r n cpy ( st r in g2 ,st r in g1 ,j um la h _ k a r a k t e r ) ;
11
10
9
8
7
6
5
4
3
2
12
DISUSUN OLEH : ADAM MUKHARIL BACHTIAR, S.Kom.
15
27 /* Program 10.3 Nama File : Lat-10.3.cpp Programmer : Adam Mukharil Bachtiar, S.Kom. */ #include <cstdlib> #include <iostream> #include <string.h> using namespace std; int main(int argc, char *argv[]) { char string1[31]; char string2[31]; int k; cout<<"Masukkan string: ";fflush(stdin); cin.get(string1,30); cout<<"Masukkan jumlah karakter salin: ";cin>>k; strcpy(string2,string1); cout<<"Hasil penyalinan strcpy = "<<string2<<endl; strncpy(string2,string1,k); string2[k]='\0';//menutup string cout<<"Hasil penyalinan strncpy = "<<string2 <<endl<<endl; system("PAUSE"); return EXIT_SUCCESS; }
26
25
24
23
22
21
20
19
18
17
16
14
1
13
12
11
10
9
8
7
6
5
4
3
2
Hasil eksekusi:
Gam bar 10.3 Hasil eksekusi program Lat 10.3
DISUSUN OLEH : ADAM MUKHARIL BACHTIAR, S.Kom.
Menggabungkan String
St rcat akan m enggabungkan isi st ring1 dengan isi st ring2 secara keseluruhan
sedangkan st rncat akan m enggabungkan isi st ring1 dengan isi st ring2 sej um lah
karakt er yang diisikan di dalam param et er fungsinya. Unt uk lebih j elasnya buat lah
program berikut ini:16
7 /* Program 10.4 Nama File : Lat-10.4.cpp Programmer : Adam Mukharil Bachtiar, S.Kom. */ #include <cstdlib>
6
5
4
3
2
1
21 /* Program 10.4 Nama File : Lat-10.4.c Programmer : Adam Mukharil Bachtiar, S.Kom. */ #include <stdio.h> #include <stdlib.h> #include <string.h> int main(int argc, char *argv[]) { char string1[]="Kita sedang belajar"; char string2[]=" fungsi string bersama!"; char string3[50]; strcpy(string3,string1); printf("Hasil penggabungan strcat = %s\n" ,strcat(string3,string2)); printf("Hasil penggabungan strncat = %s\n\n" ,strncat(string1,string2,14)); system("PAUSE"); return 0; }
20
19
18
17
15
1
Bent uk um um fungsi unt uk m enggabungkan st ring adalah sebagai berikut :
st r ca t ( st r in g1 ,st r in g2 ) ;
a t a u
st r n ca t ( st r ing1 ,st r in g2 ,j u m la h _ k a r a k t e r ) ;
13
12
11
10
9
8
7
6
5
4
3
2
14
DISUSUN OLEH : ADAM MUKHARIL BACHTIAR, S.Kom.
17
23 #include <iostream> #include <string.h> using namespace std; int main(int argc, char *argv[]) { char string1[]="Kita sedang belajar"; char string2[]=" fungsi string bersama!"; char string3[50]; strcpy(string3,string1); cout<<"Hasil penggabungan strcat = " <<strcat(string3,string2)<<endl; cout<<"Hasil penggabungan strncat = " <<strncat(string1,string2,14)<<endl<<endl; system("PAUSE"); return EXIT_SUCCESS; }
22
21
20
19
18
16
8
15
14
13
12
11
10
9
Hasil eksekusi:
Gam bar 10.4 Hasil eksekusi program Lat 10.4
DISUSUN OLEH : ADAM MUKHARIL BACHTIAR, S.Kom.
Membandingkan Dua Buah String
Ada em pat buah bent uk fungsi unt uk m em bandingkan isi dua buah st ring yait u:
st r cm p( st r in g1 ,st r in g2 ) ;
da n
st r n cm p( st r in g1 ,st r in g2 ,j u m la h _ k a r a k t e r ) ;
a t a u
st r cm pi( st r ing1 ,st r in g2 ) ;
da n
st r n icm p( st r in g1 ,st r in g2 ,j u m la h _ k a r a k t e r ) ;
Fungsi st rcm p digunakan unt uk m em bandingkan dua buah st ring secara case
sensit ive ( m em bedakan huruf besar dan huruf kecil) sedangkan st rncm p akan
m em bandingkan dua buah st ring secara case sensit ive sebany ak j um lah karakt er
pada param et er. Fungsi st rncm pi akan m em bandingkan dua buah st ring secara case
insensit ive ( t idak m em bedak an huruf besar dan huruf kecil) sedangkan st rncm pi
akan m em bandingkan dua buah st ring secara case insensit ive sebanyak j um lah
karakt er pada param et er.Sem ua fungsi di at as akan m enghasilkan sebuah nilai int eger sebagai berikut :
1. Nilai ret urn lebih dari nol ( > 0 Æ nilai posit if) apabila st ring1 lebih besar dari st ring2.
2. Nilai ret urn sam a dengan nol ( = = 0) apabila st ring1 sam a dengan st ring2.
3. Nilai ret urn kurang dari nol ( < 0 Æ nilai negat if) apabila st ring1 lebih kecil dari st ring2. Unt uk lebih j elasny a buat lah program berik ut ini:
1 /*
2 Program 10.5
3 Nama File : Lat-10.5.c 4 Programmer : Adam Mukharil Bachtiar, S.Kom. 5 */
6 7 #include <stdio.h> 8 #include <stdlib.h> 9 #include <string.h>
10 11 int main(int argc, char *argv[]) 12 {
DISUSUN OLEH : ADAM MUKHARIL BACHTIAR, S.Kom.
43
36
37
38
39
40
41
42
44
34
45
46
47
48
49
50
51
52
35
33
13
22
14
15
16
17
18
19
20
21
23
32
24
25
26
27
28
29
30
31
53 char string1[]="ABCD"; char string2[]="ABCD"; char string3[]="abcd"; int banding; banding=strcmp(string1,string2); printf("Hasil strcmp : \n"); if(banding==0) printf("%s sama dengan %s\n",string1,string2); else if(banding>0) printf("%s lebih besar dibanding %s\n" ,string1,string2); else printf("%s lebih kecil dibanding %s\n" ,string1,string2); printf("\n"); banding=strncmp(string1,string3,2); printf("Hasil strncmp dua karakter: \n"); if(banding==0) printf("%s sama dengan %s\n",string1,string3); else if(banding>0) printf("%s lebih besar dibanding %s\n" ,string1,string3); else printf("%s lebih kecil dibanding %s\n" ,string1,string3); printf("\n"); banding=strcmpi(string1,string3); printf("Hasil strcmpi : \n"); if(banding==0) printf("%s sama dengan %s\n",string1,string3); else if(banding>0) printf("%s lebih besar dibanding %s\n" ,string1,string3); else printf("%s lebih kecil dibanding %s\n" ,string1,string3); printf("\n"); banding=strnicmp(string1,string3,2); printf("Hasil strnicmp dua karakter: \n"); if(banding==0) printf("%s sama dengan %s\n",string1,string3); else if(banding>0) printf("%s lebih besar dibanding %s\n"
DISUSUN OLEH : ADAM MUKHARIL BACHTIAR, S.Kom.
24
17
18
19
20
21
22
23
25
15
26
27
28
29
30
31
32
33
16
14
54
3
55
56
57
58
59 ,string1,string3); else printf("%s lebih kecil dibanding %s\n" ,string1,string3); printf("\n"); system("PAUSE"); return 0; }
1
2
4
13
5
6
7
8
9
10
11
12
34 /* Program 10.5 Nama File : Lat-10.5.cpp Programmer : Adam Mukharil Bachtiar, S.Kom. */ #include <cstdlib> #include <iostream> #include <string.h> using namespace std; int main(int argc, char *argv[]) { char string1[]="ABCD"; char string2[]="ABCD"; char string3[]="abcd"; int banding; banding=strcmp(string1,string2); cout<<"Hasil strcmp : "<<endl; if(banding==0) cout<<string1<<" sama dengan "<<string2<<endl; else if(banding>0) cout<<string1<<" lebih besar dibanding " <<string2<<endl; else cout<<string1<<" lebih kecil dibanding " <<string2<<endl; cout<<endl; banding=strncmp(string1,string3,2); cout<<"Hasil strncmp dua karakter: "<<endl; if(banding==0) cout<<string1<<" sama dengan "<<string3<<endl; else if(banding>0)
DISUSUN OLEH : ADAM MUKHARIL BACHTIAR, S.Kom.
49
60
59
58
57
56
55
54
53
52
51
50
48
35
47
46
45
44
43
42
41
40
39
38
37
36
61 cout<<string1<<" lebih besar dibanding " <<string3<<endl; else cout<<string1<<" lebih kecil dibanding " <<string3<<endl; cout<<endl; banding=strcmpi(string1,string3); cout<<"Hasil strcmpi : "<<endl; if(banding==0) cout<<string1<<" sama dengan "<<string3<<endl; else if(banding>0) cout<<string1<<" lebih besar dibanding " <<string3<<endl; else cout<<string1<<" lebih kecil dibanding " <<string3<<endl; cout<<endl; banding=strnicmp(string1,string3,2); cout<<"Hasil strnicmp dua karakter: "<<endl; if(banding==0) cout<<string1<<" sama dengan "<<string3<<endl; else if(banding>0) cout<<string1<<" lebih besar dibanding " <<string3<<endl; else cout<<string1<<" lebih kecil dibanding " <<string3<<endl; cout<<endl; system("PAUSE"); return EXIT_SUCCESS; }
DISUSUN OLEH : ADAM MUKHARIL BACHTIAR, S.Kom. Hasil eksekusi:
Gam bar 10.5 Hasil eksekusi program Lat 10.5
Mengkonversi Isi String Ke Huruf Kecil
Bent uk um um fungsi unt uk m engkonversi isi st ring ke huruf kecil adalah sebagai berikut :
st r lw r ( st r in g) ;
Unt uk lebih j elasny a buat lah program berik ut ini:
1 /*
2 Program 10.6
3 Nama File : Lat-10.6.c 4 Programmer : Adam Mukharil Bachtiar, S.Kom. 5 */
6 7 #include <stdio.h> 8 #include <stdlib.h> 9 #include <string.h>
10 11 int main(int argc, char *argv[]) 12 { 13 char string[31]; 14 printf("Masukkan string: ");fflush(stdin); gets(string); 15 strlwr(string); 16 printf("String setelah strlwr= %s\n\n",string);
DISUSUN OLEH : ADAM MUKHARIL BACHTIAR, S.Kom.
11
21 /* Program 10.6 Nama File : Lat-10.6.cpp Programmer : Adam Mukharil Bachtiar, S.Kom. */ #include <cstdlib> #include <iostream> #include <string.h> using namespace std; int main(int argc, char *argv[]) { char string[31]; cout<<"Masukkan string: ";fflush(stdin); cin.get(string,30); strlwr(string); cout<<"String setelah strlwr= "<<string<<endl<<endl; system("PAUSE"); return EXIT_SUCCESS; }
20
19
18
17
16
15
14
13
12
10
17
9
8
7
6
5
4
3
2
1
19 system("PAUSE"); return 0; }
18
Hasil eksekusi:
Gam bar 10.6 Hasil eksekusi program Lat 10.6
DISUSUN OLEH : ADAM MUKHARIL BACHTIAR, S.Kom.
Mengkonversi Isi String Ke Huruf Besar
Unt uk lebih j elasny a buat lah program sebagai berikut :
8
2
3
4
5
6
7
9
19 /* Program 10.7 Nama File : Lat-10.7.c Programmer : Adam Mukharil Bachtiar, S.Kom. */ #include <stdio.h> #include <stdlib.h> #include <string.h> int main(int argc, char *argv[]) { char string[31]; printf("Masukkan string: ");fflush(stdin); gets(string); strupr(string); printf("String setelah strupr= %s\n\n",string); system("PAUSE"); return 0; }
10
11
12
13
14
15
16 /* Program 10.7 Nama File : Lat-10.7.cpp Programmer : Adam Mukharil Bachtiar, S.Kom. */ #include <cstdlib> #include <iostream> #include <string.h> using namespace std; int main(int argc, char *argv[]) { char string[31]; cout<<"Masukkan string: ";fflush(stdin);
1
18
1
8
2
3
4
5
6
7
9
Bent uk um um fungsi m engkonversi isi st ring ke huruf besar adalah sebagai berikut :
st r upr ( st r ing) ;
10
11
12
13
14
15
16
17
DISUSUN OLEH : ADAM MUKHARIL BACHTIAR, S.Kom.
cin.get(string,30); 17 strupr(string); 18 cout<<"String setelah strupr= "<<string<<endl<<endl; 19 system("PAUSE"); 20 return EXIT_SUCCESS; 21 }
Hasil eksekusi:
Gam bar 10.7 Hasil eksekusi program Lat 10.7
Mencari Substring
Terkadang seorang program m er m em but uhkan fungsi unt uk m encari
subst ring ( bagian dar i st ring) . Bent uk um um dari fungsi m encari subst ring adalah
sebagai berikut :st r st r ( st r in g,su bst r ing) ;
Fungsi st rst r akan m enghasilkan point er yang m enunj uk ke subst ring apabila
subst ring t ersebut ada di dalam st ringnya. Unt uk lebih j elasny a buat lah pr ogram
berikut ini:1 /*
2 Program 10.8
3 Nama File : Lat-10.8.c 4 Programmer : Adam Mukharil Bachtiar, S.Kom. 5 */
DISUSUN OLEH : ADAM MUKHARIL BACHTIAR, S.Kom.
12
5
6
7
8
9
10
11
13
3
14
15
16
17
18
19
20
21
4
2
6
14
7
8
9
10
11
12
13
15
1
16
17
18
19
20
21
22
23 #include <stdio.h> #include <stdlib.h> #include <string.h> int main(int argc, char *argv[]) { char string[31]; char substring[15]; char *pstring; printf("Masukkan string : ");fflush(stdin); gets(string); printf("Masukkan substring : ");fflush(stdin); gets(substring); pstring=strstr(string,substring); printf("Sub string = %s\n",pstring); printf("Posisi sub string = %i\n\n", (pstring-string)+1); system("PAUSE"); return 0; }
22 /* Program 10.8 Nama File : Lat-10.8.cpp Programmer : Adam Mukharil Bachtiar, S.Kom. */ #include <cstdlib> #include <iostream> #include <string.h> using namespace std; int main(int argc, char *argv[]) { char string[31]; char substring[15]; char *pstring; cout<<"Masukkan string : ";fflush(stdin); cin.get(string,30); cout<<"Masukkan substring : ";fflush(stdin); cin.get(substring,14); pstring=strstr(string,substring); cout<<"Sub string = "<<pstring<<endl; cout<<"Posisi sub string = "<<(pstring-string)+1 <<endl<<endl;
DISUSUN OLEH : ADAM MUKHARIL BACHTIAR, S.Kom.
23 system("PAUSE"); 24 return EXIT_SUCCESS; 25 }
Hasil eksekusi:
Gam bar 10.8 Hasil eksekusi program Lat 10.8
Cat at an Fungsi st rst r hanya dapat m encari secara case sensit ive dan unt uk m endapat kan posisi secara benar m aka di dalam program nya point er hasil st rst r harus dit am bahkan dengan sat u karena indeks st ring dim ulai dari nol.Membalik Isi String
Bent uk um um fungsi unt uk m em balik isi st ring adalah sebagai berikut :
st r r e v( st r in g) ;
Unt uk lebih j elasny a buat lah program berik ut ini:
1 /*
2 Program 10.9
3 Nama File : Lat-10.9.c 4 Programmer : Adam Mukharil Bachtiar, S.Kom. 5 */
DISUSUN OLEH : ADAM MUKHARIL BACHTIAR, S.Kom.
13
7
8
9
10
11
12
14
5
15
16
17
18
19
20
6
4
6
13
7
8
9
10
11
12
14
3
15
16
17
18
19 #include <stdio.h> #include <stdlib.h> #include <string.h> int main(int argc, char *argv[]) { char string[31]; printf("Masukkan string: ");fflush(stdin); gets(string); strrev(string); printf("String setelah strrev= %s\n\n",string); system("PAUSE"); return 0; }
1
2
21 /* Program 10.9 Nama File : Lat-10.9.cpp Programmer : Adam Mukharil Bachtiar, S.Kom. */ #include <cstdlib> #include <iostream> #include <string.h> using namespace std; int main(int argc, char *argv[]) { char string[31]; cout<<"Masukkan string: ";fflush(stdin); cin.get(string,30); strrev(string); cout<<"String setelah strrev= "<<string<<endl<<endl; system("PAUSE"); return EXIT_SUCCESS; }
DISUSUN OLEH : ADAM MUKHARIL BACHTIAR, S.Kom. Hasil eksekusi:
Gam bar 10.9 Hasil eksekusi program Lat 10.9
Mengganti Isi String Dengan Suatu Karakter
Bent uk um um fungsi unt uk m enggant i isi st ring dengan suat u karakt er adalah sebagai berikut :
st r se t ( st r in g,k a r a k t e r ) ;
a t a u
st r n se t ( st r ing,k a r a k t e r ,j u m la h _ k a r a k t e r ) ;
Fungsi st rset akan m enggant i isi st ring dengan karak t er yang ada di param et er
secara keseluruhan sedangkan st rnset ak an m enggant i isi st ring dengan karakt er
yang ada di param et er sej um lah karakt er yang ada di param et er. Unt uk lebih
j elasny a buat lah pr ogram ber ik ut ini:1 /*
2 Program 10.10
3 Nama File : Lat-10.10.c 4 Programmer : Adam Mukharil Bachtiar, S.Kom. 5 */
6 7 #include <stdio.h> 8 #include <stdlib.h> 9 #include <string.h>
10
DISUSUN OLEH : ADAM MUKHARIL BACHTIAR, S.Kom.
15
9
10
11
12
13
14
16
7
17
18
19
20
21
22
8
6
11
18
12
13
14
15
16
17
19
5
20
21 int main(int argc, char *argv[]) { char string[]="Saya sedang belajar fungsi string"; char karakter='A'; strnset(string,karakter,11); printf("String setelah strnset = %s\n",string); strset(string,karakter); printf("String setelah strset = %s\n\n",string); system("PAUSE"); return 0; }
1
2
3
4
23 /* Program 10.10 Nama File : Lat-10.10.c Programmer : Adam Mukharil Bachtiar, S.Kom. */ #include <cstdlib> #include <iostream> #include <string.h> using namespace std; int main(int argc, char *argv[]) { char string[]="Saya sedang belajar fungsi string"; char karakter='A'; strnset(string,karakter,11); cout<<"String setelah strnset = "<<string<<endl; strset(string,karakter); cout<<"String setelah strset = "<<string <<endl<<endl; system("PAUSE"); return EXIT_SUCCESS; }
DISUSUN OLEH : ADAM MUKHARIL BACHTIAR, S.Kom. Hasil eksekusi:
Gam bar 10.10 Hasil eksekusi program Lat 10.10
String Sebagai Parameter Fungsi
Sepert i t ipe dat a lainnya, st ring j uga bisa digunak an sebagai param et er
fungsi. Tidak hanya sebagai param et er fungsi t et api j uga bisa digunak an sebagai
nilai balik suat u fungsi. Sebagai cont oh adalah kasus t ent ang k ode barang dan nam a
barang sebagai berikut :1. Jika kode barang = B001 m ak a nam a barang = Kem ej a.
2. Jika kode barang = B002 m ak a nam a barang = Kaos.
3. Jika kode barang = B003 m ak a nam a barang = Jas. Kasus ini dapat diselesaik an dengan dua car a yait u: 1. Menggunakan st ring sebagai nilai balik fungsi.
2. Menggunakan st ring sebagai param et er fungsi.
Menggunakan cara yang pert am a m aka st ring akan dij adikan sebagai t ipe dat a suat u
fungsi. Unt uk lebih j elasnya buat lah program berikut ini:1 /*
2 Program 10.11
3 Nama File : Lat-10.11.c 4 Programmer : Adam Mukharil Bachtiar, S.Kom. 5 */
6 7 #include <stdio.h>
DISUSUN OLEH : ADAM MUKHARIL BACHTIAR, S.Kom.
9
1
2
3
4
5
6
7
8
10
31
11
12
13
14
15
16
17
18
19
32 #include <stdlib.h> #include <string.h> char *nama_barang(char kode_barang[]) { if(strcmp(kode_barang,"B001")==0) return "Kemeja"; else if(strcmp(kode_barang,"B002")==0) return "Kaos"; else return "Jas"; } int main(int argc, char *argv[]) { char kode_barang[6]; char *nama_brg; printf("Masukkan kode barang : ");fflush(stdin); gets(kode_barang); strupr(kode_barang);//mencegah error huruf kecil nama_brg=nama_barang(kode_barang); printf("Nama barang = %s\n\n",nama_brg); system("PAUSE"); return 0; }
30
8
18
9
10
11
12
13
14
15
16
17
19
29
20