Memproses data string
string adalah kumpulan dari suatu karakter (char), selama dalam memprogram data string ini banyak kita temui selain dari data-data angka, karena itu untuk dapat benar-benar mengolah data string, menjadi data tipe lain (misalnya menjadi data integer) sangatlah penting, termasuk juga mengambil sebagian dari string tersebut untuk diolah menjadi data yang lain.
String
- string adalah kumpulan char yang diakhiri dengan null ('\0')
- nama string merupakan alamat elemen pertama string itu
- untuk meminta masukkan gunakan perintah gets jangan scanf
- Berikut cara deklarasi program
- char nama[5]
- artinya disini membuat variabel nama dengan nilai max 4 huruf
- karena digit yang terakhir digunakan untuk kode null
- untuk meminta masukkan gunakan gets
- gets(nama);
- untuk mencetak gunakan perintah cprintf
- printf("nama siswa : %s \n\r",nama)
- %s adalah format yang digunakan
- \n adalah kode enter di cpp
- berikut contoh program menggunakan string yang pertama
Beberapa Fungsi dari string
strcpy
- berguna untuk mengisi suatu variabel string ke variabel yang lain
- format: strcpy(variabel hasil, variabel asal)
- contoh:
- char asal[20] = "kapasan";
- char hasil[20];
- strcpy(hasil,asal);
- maka isi dari hasil adalah kapasan;
strcmp
- untuk mengecek apakah 2 variabel string itu isinya sama
- bila hasilnya = 0, berarti sama, bila tidak sama dengan 0 artinya tidak sama
- contoh:
- char v1[20]= "kapasan";
- char v2[20]= "kapasan;
- strcmp(v1,v2);
strlen
- mencari banyak huruf dalam suatu string
- contoh:
- char teks[] = "hello"
- size_t banyak;
- banyak = strlen(teks);
- ingat NULL tidak termasuk
strncat
- menambahkan sebagian string
#include <conio.h> #include <stdio.h> #include <stdlib.h> #include <iostream> #include <string.h> using namespace std; void contoh41() { // proses input output string char nama[20],alamat[30],telp[12]; printf("Nama : ");gets(nama); printf("Alamat: ");gets(alamat); printf("Telp : ");gets(telp); printf(" Terima kasih, %s \n anda ada di %s \n dan telpon anda ada di %s ",nama,alamat,telp); // output } void contoh42() { // proses input output string char nama[20],alamat[30],kota[12]; char nama_lain[20],kota_lain[12]; size_t panjang; strcpy(nama,"Yudi"); strcpy(nama_lain,nama); printf("isi dari variabel nama: %s, nama_lain %s \n",nama,nama_lain); printf("hasil perbandingan : %d , karena isinya sama\n",strcmp(nama,nama_lain)); panjang = strlen(nama); printf("Banyak huruf adalah: %d \n",panjang); strncat(nama,nama_lain,3); printf("isi dari variabel nama saat ini adalah %s, karena ada penambahan 3 huruf \n",nama); } void contoh43() { // konversi tipe dari string ke angka // harus include stdlib.h char nilai_dalam_string[10]; int b1; float b2; long b3; printf("masukkan angka pecahan : ");gets(nilai_dalam_string); b1 = atoi(nilai_dalam_string); // ascii to int b2 = atof(nilai_dalam_string); // ascii to float b3 = atol(nilai_dalam_string); // ascii to long printf("isi dari variabel nilai_dalam_string: %s \n",nilai_dalam_string); printf("nilai b1: %d \n",b1); printf("nilai b2: %f \n",b2); printf("nilai b3: %d \n",b3); printf("bila di konversikan kembali ke string \n"); itoa(b1,nilai_dalam_string,10); // int to ascii , 10 disini maksudnya bilangan desimal printf("nilai string dari b1 (desimal): %s \n",nilai_dalam_string); itoa(b1,nilai_dalam_string,2); // int to ascii , 10 disini maksudnya bilangan desimal printf("nilai string dari b1 (binary) : %s \n",nilai_dalam_string); gcvt(b2,3,nilai_dalam_string); // 3 disini maksudnya jumlah bilangan printf("nilai string dari b2 (float ) : %s \n",nilai_dalam_string); } void contoh44() { // aplikasi 1 // cek suatu string palindrome char nama[30]; int i,p,separuh_p,flag; printf("program test palindrome"); printf("masukkan nama yang ingin di test: ");gets(nama); flag = 1; p = strlen(nama); separuh_p = p / 2; for(i=0;i < separuh_p-1;i++) { if(nama[i]!=nama[p-i-1]) { flag=0; break; } } if (flag==1) { printf("\n Palindrome."); } else { printf("\n Bukan Palindrome."); } } main() { system("cls"); // membersihkan layar contoh44(); getch(); return 0; }