string sangat memudahkan tugas pemrogram.dengan menggunakan string,pemrograman dapat menampilkan pesan kesalahan,menampilkan prompt bagi masukan dari keyboard ataupun memberikan informasi pada layer dengan mudah.
seperti halnya tipe data yang lain, string dapat berupa konstanta atau variable. konstanta string sudah biasa anda sertakan pada program. misalnya pada pernyataan:
cout << “c++” << endl;
terdapat konstanta string “c++”. tetapi sejauh ini, variable string belum diperkenalkan.
2 konstanta string
suatu konstanta string ditulis dengan awalan dan akhiran tanda petik ganda ( “ ). misalnya :
“c++”
konstanta string seperti di atas disimpan dalam memori secara berurutan.
setiap karakter menempati memori sebesar 1 byte.setelah karakter yang terakhir terdapat karakter null (karakter dengan nilai ascii sama dengan nol atau disimbolkan dengan ‘\0’, yaitu tanda \ diikuti dengan nol).
bila suatu string hanya berisi karakter null, string disebut sebagai string kosong.
3 variabel string
variable string adalah variable yang dipakai untuk menyimpan string. misalnya:
char teks [10];
merupakan pernyataan untuk mendefinisikan variable string dengan panjang maksimal 15 karakter ( sudah termasuk karakter null ).perlu diketahui, pernyataan di atas tidak lain adalah untuk mendefinisikan array bertipe karakter.
4 memasukkan data string dari keyboard
setelah suatu variable string didefinisikan, anda bisa mengisikan data ke variable tersebut. pemasukan data dapat ditangani oleh cin,sebagaimana terlihat pada program berikut:
program 1:
#include <iosream.h>
#include <conio.h>
void main ()
{
char teks [13];
cout << “masukkan sebuah kata “ <<endl;
cin >> teks;
cout << “ yang anda masukkan : “<<teks <<endl;
}
program 2:
#include <iostream.h>
#include <conio.h>
void main ()
{
char teks [13];
cout << “masukkan sebuah atau beberapa kata” <<endl;
cin.get (teks, 13);
cout << “yang anda masukkan: “ <<teks;
}
tampak, bahwa karakter yang terletak sesudah spasi juga ikut disimpan pada teks.
parameter kedua dari fungsi anggota get() harus diisi dengan nilai yang tidak melebihi ukuran array pada argumen pertama; sebab bisamenimbulkan terubahnya variable yang terletak sesudah array,tanpa sengaja.
pada contoh di depan:
cin.get (teks,13)
bisa juga ditulis menjadi:
cin.get (teks,sizeof (teks) );
fungsi anggota getline()
suatu masalah akan timbul kalau cin.get() digunakan dua kali seperti pada program berikut:
program 3:
#include <iostream.h>
#include <conio.h>
void main ()
{
char nama [25];
char alamat [35];
cout <<”nama anda: “;
cin.get (nama, sizeof (alamat) );
cout<< “alamat : “;
cin.get (alamat, sizeof (alamat) );
cout <<”nama = “<<nama <<endl;
cout <<”alamat= “<<alamat << endl;}
pada contoh diatas cin.get() pertama digunakan untuk membaca nama dan yang kedua untuk membaca alamat. ternyata program tidak memberikan kesempatan pemakai untuk mengisi alamt. hal ini terjadi karena get() yang ertama tidak membuang kode newline (\n). oleh karena get() kedua menjadi tidak berfungsi sebagaimana mestinya.
cara untuk mengatasi kejadian ini yaitu dengan menggunakan fungsi anggota getline(),karena fungsi ini dapat membuang sisa data yang tidak dibaca, termasuk newline itu sendiri.pada contoh berikut,get() diganti dengan getline().
program 4:
#include <iostream.h>
#include <conio.h>
void main ()
{
char nama [25];
char alamat [35];
cout <<”nama anda: “;
cin.getline (nama, sizeof (alamat) );
cout<< “alamat : “;
cin.getline (alamat, sizeof (alamat) );
cout <<”nama = “<<nama <<endl;
cout <<”alamat= “<<alamat << endl;
}
menghitung jumlah karakter
jika anda bermaksud menghitung jumlah karakter yang dimasukkan oleh pemakai, anda bisa menghitung sendiri dengan membuat pernyataan semacam berikut:
jumlah = 0;
for (int i =0; teks[i]; i++)
jumlah++;
yang akan menghasilkan jumlah karakter yang terdapat pada teks. perintah di atas, menghitung karakter dimulai posisi pertama (subscript bernilai 0)hingga teks [i] bernilai null.
program 5:
#include <iostream.h>
#include<conio.h>
void main()
{
char teks[128];
clrscr ();
cout <<”masukkan string apa saja!”<<endl;
cin.getline (teks,sizeof(teks));
jumlah=0;
for (int i=0 ; teks[i]; i++)
jumlah ++;
cout<<”jumlah karakter=”<<jumlah<<endl;
}
membaca sejumlah baris
fungsi anggota getline() juga bisa dipakai untuk membaca sejumlah baris hingga suatu karakter yang telah ditentukan dijumpai. hal seperti ini dapat diperoleh dengan menyertakan argumen ketiga pada fungsi tsb.argumen ini berupa karakter pengakhir.contoh:
cin.getline(teks, sizeof(teks), ‘$’);
akan menyebabkan seluruh karakter yang terletak di sebelah tanda $ di letakkan ke teks.jika jumlah karaktermelebihi ukuran array teka,sisanya di abaikan.
program 6
#include<iostream.h>
#include<conio.h>
void main ()
{
char teks[128];
clrscr ();
cout<<”masukkan data “<<endl;
cout<<”dan akhiri dgn $ dan enter”<,endl;
cin.getline(teks, sizeof(teks),’$’);
cout<<”\n yang anda ketikkan:”<<endl;
5 inisialisasi string
suatu variable string dapat diberi nilai awal seperti halnya variable lain.oleh karena variable string sebenarnya adalah jenis khusus dari array,maka inisialisasi dapat berupa seperti berikut:
char bahasa[]={ ‘c’ ,’+’ ,’+’, ‘ \ 0’);
tampak bahwa elemen terakhir pada pendefinisian diatas berupa karakter null.
bentuk pendefinisian dan inisialisasi seperti diatas dapat disederhanakan menjadi:
char bahasa[ ]=”c++”;
tampak lebih sederhana dan tidak perlu adanya pemberian karakter null secara eksplisit!
program 7
#include<iostream.h>
#include<conio.h>
void main ()
{
char bahasa [ ]=”c++”; // inisialisasi string
clrscr ();
cout<<bahasa<<endl;
}
6 menyalin string
menyalin string berbeda dengan menyalin bilangan .misalnya teks 1 dan teks 2 adalah variable string.anda tidak bisa memberikan pernyataan:
teks2 = teks1;
untuk menyalin string teks1 ke teks2.
program 8
#include <iostream.h>
#include <conio.h>
void main ()
{
char teks [ ]= ”c++ oke”;
char data[125];
clrscr();
for (int i=0;teks [i] ; i++)
data[i]=teks[i];
data[i]=’\ 0’; \\ karakter null
cout<<”isi data : “<< data<< endl;
meskipun caranya sederhana ,c++ membrikan fungsi yang menyederhanakan tugas anda untuk menyalin file.fungsi tersebut bernama strcpy().
program 9
#include<iostream.h>
#include<conio.h>
#include<string.h> // untuk strcpy()
void main ()
{
char teks [ ]=”c++ oke”;
char data[125];
clrscr ();
strcpy(data,teks); //menyalin isi teks ke data
cout<<”isi data : “<<data<<endl;
}
7 fungsi dan makro berbasis karakter
pada c++ terdapat sejumlah fungsi ataupun makro (semacam fungsi, tetapi di definisikan dengan #define )yang berbasis karakter. fungsi dan makro ini berguna untuk menganalisis karakter2 yang terdapat pada suatu string ataupun untuk melakukan konfersi (misalnya huruf kecil di ubah menjadi capital).
makro keluarga is……
sejumlah makro dengan awalan is,mempunyai kaidah sebagai berikut:
int isalnum( int c);
int isalpha(int c);
int isascii(int c);
int iscntr(int c);
int isdigit(int c);
int isgraph(int c);
int islower(int c);
int isprint(int c);
int ispunct(int c);
int isspace(int c);
int isupper(int c);
int isxdigit(int c);
semua makro di atas memberikan nilai balik berupa benar (nilai tidak nol). contoh berikut menggambarkan penggunaan isupper(),islower(),ispunct().
program 10
#include <iostream.h>
#include <conio.h>
#include <ctype.h>
void main ()
{
Posting Komentar