Wednesday, 28 April 2010

Mudahnya dengan std::string (2)

Tulisan ini merupakan lanjutan dari:
Mudahnya dengan std::string (1)

Berikut contoh kode yang akan menunjukkan kemudahan menggunakan string:

/*
Source Code ini adalah bahan/materi
untuk blog:

http://membuatgamedengancpp.blogspot.com/

Anda bebas mendistribusikan dan mengubah
source code ini.
*/
#include <iostream>
#include <string>

using namespace std;

int main()
{
//Kemudahan:
//Pertama
string A = "TES DOANG",
B( A,4,5);
string C;

//Kedua
C = A.substr(4,5);
cout<<"\n"<<B;

//Ketiga
cout<<"\n"<<C<<" dengan jumlah data "<<C.size();
cout<<"\n"<<C.length();

//Keempat
A.insert(1," #COBA# ");
cout<<"\n"<<A;

//Kelima
A = "TES LAGI";
A.append(" ADA DI AKHIR");
cout<<"\n"<<A;

//Keenam
string ygDicari="ADA";
int D = A.find(ygDicari);
cout<<"\nKata '"<<ygDicari<<"', ada pada array ke "<<D;

cout<<"\n\n";
system("pause");
return 0;
}

//- krofz
Kemudahan :
  1. Pertama, yaitu menyalin 5 buah karakter (parameter ketiga) dari variabel A dimulai dari karakter ke 4 atau karakter ke 5 (karena array dimulai dari nol). Sehingga kalimat yang diperoleh adalah "DOANG"

  2. Kedua, sama seperti yang pertama hanya tidak dilakukan saat inisialiasi variabel. Hasil yang diperoleh adalah "DOANG"

  3. Ketiga, mengetahui banyaknya/ukuran karakter yang dimiliki oleh suatu variabel. Sedangkan baris keduanya mengetahui panjang karakter yang dimiliki (hasilnya sih biasanya sama-sama aja haha... ).

  4. Keempat, memasukkan string " #COBA# " (tanpa tanda kutip) kedalam variabel A, yang dimulai dari karakter kedua (array ke-1).

  5. Kelima, menambahkan kalimat diakhir data/kalimat sebelumnya.

  6. Keenam, mencari kalimat/karakter pada parameter find (var.find(const _CharT* __s)). Yang perlu diperhatikan adalah besar kecilnya huruf. Jika kalimat/karakter yang dicari tidak ditemukan maka nilainya (var D) adalah -1. Sebaliknya jika telah ditemukan maka var D akan bernilai sesuai indeks pada array huruf pertama kalimat/karakter yang dicari.
Ini link untuk download source code diatas, cuma 112 KB. Apa cuma segini doang kemudahan yang ditawarkan? Tentu tidak masih banyak lagi kelebihan, kemudahannya, tip dan trik yang belum terkuak.... yang terpenting jangan berhenti untuk belajar.. se ilah bahasanya... hahahaha..

- krofz

Tuesday, 20 April 2010

Mudahnya dengan std::string (1)

Semakin kompleks program kita, semakin kita perlu menyederhakan sesuatu sehingga membuatnya menjadi mudah. Inilah yang ditawarkan oleh tipe data std::string untuk urusan mengolah string (baik karakter, kata ataupun kalimat). Jika kita masih menggunakan tipe data primitif dalam urusan string, yaitu char, siapin aja obat sakit kepala jika sewaktu-waktu kambuh lagi . Berikut contoh program untuk mengisi dan memindahkan string/kalimat dari variabel A ke B:

#include <iostream>
#include <string>

using namespace std;

int main()
{
//cara pertama
//dapat juga diisi seperti berikut:
//A[0] = 'T';
//A[1] = 'E';
//... dst
char A[10] = {'T','E','S',' ','D','O','A','N','G'}, B[10];
for( int c=0;c<10;c++){
B[c] = A[c];
cout<<B[c];
}

//cara kedua
char C[10], D[5];
strcpy(C,A);
strcpy(D,A);
cout<<"\n"<<C<<" "<<D;

//cara ketiga
char *_A = "TES DOANG", *_B;
_B = _A;
cout<<"\n"<<_B;

//cara keempat
string __A = "TES DOANG", __B(__A);
cout<<"\n"<<__B;

cout<<"\n\n";
system("pause");
return 0;
}


Cara pertama menggunakan array pada tipe data (pritimif) char, untung kata-katanya tidak lebih dari 10 sehingga pengisian terhadap variabel A menjadi lebih mudah. Pengopian atau proses perpindahan nilai pada cara pertama dilakukan satu-satu dengan pengulangan yang sudah ditentukan terlebih dahulu (yaitu sebanyak 10 kali). Sedangkan pada cara kedua lebih cepat lagi dan nggak perlu mengira-ngira berapa karakter yang akan dikopi. Tapi cara ini masih ada kekurangan (menurutku) kalau kita mengopi ke variabel yang jelas-jelas lebih kecil jumlah array-nya dari sumber data, maka saat ditampilkan (var D) akan terkopi semua karakter yang dimiliki oleh sumber data (A). Apakah strcpy(char *, const char *) akan menyesuaikan panjang array sesuai dari sumber datanya? Aku belum tau itu, ada yang mau ngasih tau?? . Cara ketiga lebih cepat lagi dalam mengisi string dan mengopinya ke variabel lain. Tapi dari ketiga cara sebelumnya, menggunakan string lebih efisien, cepat, hemat baris, dan masih banyak lagi keunggulannya. Untuk mendownload program selengkapnya dapat mengklik link ini dengan ukuran 110 KB. Selanjutnya masih dengan kemudahan string.

- krofz
 

back to top

back to top