Program 8.9
#include<conio.h>
#include<iostream>
#include<string>
usingnamespacestd;
intmain()
{
constintN_ITEMS=5,S_LENGTH=31;
charprods[5][S_LENGTH]={"TV311televisi31inch",
"CD111CDPlayer",
"MC123MesinCuci",
"TM456tapeMobil",
"PC955PersonalComputer"};
charlookUp[S_LENGTH],*strPtr=NULL;
intindex;
cout<<"\tProductDatabase\n\n";
cout<<"MasukanKodeangkaproductuntukmencaridata:";
cin.getline(lookUp,S_LENGTH);
for(index=0;index<N_ITEMS;index++)
{
strPtr=strstr(prods[index],lookUp);
if(strPtr!=NULL)
break;
}
if(strPtr==NULL)
cout<<"kodetidaksesuaidenganproduk.\n";
else
cout<<prods[index]<<endl;
getch();
return0;
}
ProductDatabase
2008 | Direktorat Pembinaan SMK 305
strPtr=strstr(prods[index],lookUp);
8.7. Konversi String/Numeric
Fungsi strstr mencari string yang Ada suatu perbedaan besar
sesuai oleh prods[index] karena antara nomor yang disimpan sebagai
nama yang dimasukkan oleh string dan yang disimpan sebagai
pengguna, yang mana disimpan nilai klasifikasi. String "26792"
dalam lookUp. Jika lookUp ditemukan sebenarnya tidak sebagai nomor,
di dalam prods[index], fungsi akan tetapi rangkaian yang diwakili kode-
mengembalikan alamatnya. Dalam kode ASCII untuk setiap digit-digit
kasus tersebut, statemen if dari nomor. Rangkaian tersebut
menyebabkan pengulangan akan menggunakan enam byte dari
berakhir. memori termasuk kode akhir string
(null).
if(strPtr!=NULL) Karena itu bukan sebagai nomor
break; nyata, maka tidak mungkin untuk
melaksanakan operasi matematik
Di luar pengulangan tersebut, sesuai dengannya, kecuali jika hal tersebut
statemen IF-ELSE untuk menentukan dikonversi menjadi nilai numerik.
jika string dimasukkan oleh pengguna Beberapa fungsi yang ada dalam
ditemukan dalam array. Jika tidak, pustaka C++ untuk mengubah
maka akan menginformasikan penyajian string angka ke dalam nilai
kepada pengguna bahwa tidak ada numerik dan sebaliknya. Tabel
produk yang sesuai ditemukan. dibawah menunjukan fungsi-fungsi
Sebaliknya, nomor produk dan tersebut:
deskripsi akan ditampilkan:
FUNGSI PENJELASAN
atoi Dalam string sebagai argument. Fungsi untuk mengubah String
menjadiintegerdanmengembalikannilai.
ContohPenggunaan:num=atoi("4569");
atol Dalam bahasa c, string sebagai argument. Fungsi untuk mengubah
Stringmenjadilongintegerdanmengembalikannilai.
306 Direktorat Pembinaan SMK| 2008
ContohPenggunaan:lnum=atol("500000");
atof MenerimaCstringsebagaiargumen.Fungsimengubahstringkedua
yang kembali dan nilai. Gunakan fungsi ini mengkonversi string ke
floatataudouble.
ContohPenggunaan:fnum=atof("3,14159")
itoa Mengkonversi sebuah integer ke string. Argumen pertama, nilai,
adalah integer. Hasilnya akan disimpan di lokasi yang oleh kedua
argumen, string. Argumen yang ketiga, basis, merupakan integer. It
menentukan penomoran system yang dikonversi integer yang harus
dinyatakandalam(8=oktal,desimal=10,16=heksadesimal,dll).
ContohPenggunaan:itoa(nilai,string,basis);
longbigNum; charnumArray[10];
bigNum=atol("500000"); itoa(1200,numArray,10);
cout<<numArray<<endl;
sebagaimana yang diinginkan, fungsi
atof menerima sebuah argumentasi Sebuah potongan program
string dan melakukan konversi string tersebut diatas akan mengkonversi
menjadi double. Sebuah nilai numerik bilangan integer 1200 menjadi string.