2. STRING: DERETAN KARAKTER
mengulas tentang dua jenis string yangdisediakan di C++,berbagai
operasi yang terkait dengan string dibahas dengan tujuan agar
anda menjadi akrab dengan string.
MATERI
8/5/2017
Menny
cendana25.blogspot.com
3. STRING ITU ADA DUA MACAM ,YA? BISA DI BENTUK MELALUI ARRAY
KARAKTER DAN TIPE STRING?
C++ memang memdukung dua macam string. String pertama dibentuk
melalui array karakter . string jenis ini , selalu melibatkan karakter null
(0) sebgai penanda akhir string. Sebagai ontoh,untuk menampung nama
kota yang maksimal mengandung 12 karakter,diperlukan deklarasi
seperti brikut:
Char namakota[13];satu perlu elemen ditambahkan untugk menyimpan
karakter null .itulah sebabnya ,angkah 13 diberikan pada bagian[].
Tentu saja,walaupun namakota bisa menampung 13 karakter (termasuk
null ), bukan berarti bahwa nama kota yang di berikan ke namakota harus
sama dengan 12 . nama kota yang lebih pendek (kurang dari 12 karakter)
tetap bisa disimpan di namakota .
8/5/2017
Menny
cendana25.blogspot.com
4. BAGAIMANA CARA MENGISIKAN STRING KE ARRAY KARAKTER
C++ Menyediakan fungsi yang secra khusus ditujukan untuk keperluan ini.
gsi ifungsi yang dimaksud adalah : STRPCY() . jika menggunakan fungsi ini ,
jangan lupa menambahkan : #include<cstring>
8/5/2017
Menny
cendana25.blogspot.com
6. CONTOH FUNGSI- FUNGSI YANG MEMUDAHKAN MEMANIPULASI
STRING YANG BERBASIS ARRAY KARAKTER
fungsi keterangan
Strlen() prototype :size_t strlen (const char * str); Berguna untuk mendapatkan jumlah karakter dalam string str.
Strcpy() prototype: char * strcpy (char * destinasi , const
char, * sumber)
Berguna untuk menyalin string sumber ke distinasi. Nalai baik
berupa pointer yang menunjukan ke destinasi .
Strcat() prototype: char * strcat (char * destinasi , const
char )
Berguna untuk menambah string sumber ke destinasi. Nilai balik
berupa pointer yg menunjuk ke destinasi
Strchr()
Prototype:
Char * strchr (char * str, int karakter );
Berguna untuk mencari posisi pertama karakter dalam string str.
Nilai balik berupa pointer yg menunjuk ke karakter dalam string str
atau berupa poniter null kalau yg dicari tidak ditemukan
Strstr()
Prototype:
Char * strstr ( char * str1, cons char * str2);
Berguna utk mencari posisi pertama string str2 dalam str1. Nilai
balik berupa pointer yg menunjuk ke string str2 dalam str1 atau
berupa pointer null kalu yg dicari tidak ditemukan
8/5/2017
Menny
cendana25.blogspot.com
7. int main() {
char kalimat[100] = "";
char kata1[] = "belajar ";
char kata2[] = "C++";
strcpy(kalimat, "Selamat ");
strcat(kalimat, kata1);
strcat(kalimat, kata2);
if (strstr(kalimat, "ajar"))
cout << "Substring "ajar"
terdapat pada ""
<< kalimat << """ << endl;
else
cout << "Substring "ajar" tidak
terdapat pada ""
<< kalimat << """ << endl;
if (strstr(kalimat, "AJAR"))
cout << "Substring "AJAR"
terdapat pada ""
<< kalimat << """ << endl;
else
cout << "Substring "AJAR" tidak
terdapat pada ""
<< kalimat << """ << endl;
return 0;
}
8/5/2017
Menny
cendana25.blogspot.com
8. Apakah cin dapat dipakai utk memasukan string
yang berbasis array karakter ??
#include <iostream>
#include <cstring>
using namespace std;
int main() {
char kalimat[100];
cout << "Kalimat: ";
cin.getline(kalimat, 100);
cout << "Kalimat : " << kalimat << endl;
return 0;
}
8/5/2017
Menny
cendana25.blogspot.com
9. Persamaan antara string berbasis array karakter dan tipe string
String berbasis array karakter String menggunakan tipe string
Char namakota[13]; String namakota;
Strcpy(namakota,”Kupang”); Namakota=”Kupang”
Char x[25]=”kota”;
Strcat(x, “semarang”);
Hasilnya : x berisi “kota semarang”
String x = “kota”;
X=x + “semarang”;
Hasilnya : x = “kota semarang”
8/5/2017
Menny
cendana25.blogspot.com
12. Fungi-fungsi yang melekat pada tipe string
Fungsi anggota Kegunaan
Length ata size () Memberikan nilai balik berupa jumlah karakter dalam string
Empty () Memberikan nilai balik berupa true atau false
Clear () Mengosongkan string
At(pos) Memberika nilai balik berupa karakter pada posisi pos
Substr(pos, n) Menghasilkan substring berupa n karakter dimulai posisi pos
Erase(pos, str) Menghapus n karakter dimulai posisi pos
Replace(pos, n, str) Mengganti n karakter dimulai dari pos dengan string str
Insert (pos, str) Menyisipkan string string str ke posisi pos
Append(str) Menyisipkan string str dibagian akhir objek
Compare(str) Membandingkan string str dengan string objek. Nilai balik
berupa 0 kalau kedua string sama
Find (str) Mencari posisi string strdalam string objek
Rfind(str) Sama seperti find tapi menghasilkan posisi terakhir str
Find_first_of(str) Mencari posisi salah satu karakter awal
Find_last_of(str) Mencari posisi salah satu karakter akhir
8/5/2017
Menny
cendana25.blogspot.com
13. #include <iostream>
#include <string>
using namespace std;
int main() {
string st = "Abrakadabra. Berubahlah!";
cout << "Isi st semula: " << st << endl;
st.erase(0, 4); // Hapus 4 karakter
pertama
cout << "Isi st setelah erase(0, 4): " << st
<< endl;
st.insert(9, "Hoya! ");
cout << "Isi st setelah insert(9,
"Hoya! "): " << st << endl;
st.clear();
if (st.empty())
cout << "Isi st sekarang kosong"
<< endl;
return 0;
}
Contoh :
8/5/2017
Menny
cendana25.blogspot.com
14. Apakah ada fungsi mengubah huruf kecil menjadi huruf kapital ?
#include <iostream>
#include <string>
#include <cctype>
using namespace std;
string strupr(string st);
int main() {
string st;
cout << "String: ";
getline(cin, st);
cout << strupr(st) << endl;
return 0;
}
string strupr(string st) {
string hasil = "";
for (int i = 0; i < st.length(); i++)
hasil = hasil +
char(toupper(st[i]));
return hasil;
}
8/5/2017
Menny
cendana25.blogspot.com
15. catatan
Pada cotoh strupr, typecasting
Char (toupper(st[i]))
Diperlukan mengingat nilai balik toupper() berupa int
Selain toupper, terdapat tolower() untuk mengubah huruf kapital menjadi
huruf kecil
8/5/2017
Menny
cendana25.blogspot.com
16. #include <iostream>
#include <string>
#include <cctype>
using namespace std;
string strupr(string st);
int main() {
string st;
int jumHurufKecil = 0;
int jumHurufKapital = 0;
int jumPungtuasi = 0;
int jumDigit = 0;
cout << "String: ";
getline(cin, st);
for (int i = 0; i <
st.size(); i++) {
char kar = st[i];
if (islower(kar))
jumHurufKecil++;
if (isupper(kar))
jumHurufKapital++;
if (ispunct(kar))
jumPungtuasi++;
if (isdigit(kar))
jumDigit++;
}
cout << "Huruf kecil : " <<
jumHurufKecil << endl;
cout << "Huruf kapital : " <<
jumHurufKapital << endl;
cout << "Pungtuasi : " <<
jumPungtuasi << endl;
cout << "Digit : " <<
jumDigit << endl;
return 0;
}
string strupr(string st) {
string hasil = "";
for (int i = 0; i < st.length(); i++)
hasil = hasil +
char(toupper(st[i]));
return hasil;
}
8/5/2017
Menny
cendana25.blogspot.com
17. Cara conversi string bertipe string ke array karakter
int main() {
char teks[255];
string st = "ABCDE 123";
// Memastikan bahwa jumlah karakter
// tidak melebihi 254
int panjang = st.size() > 254? 254 : st.size();
// Salin ke teks
int i;
for (i = 0; i < panjang; i++)
teks[i] = st[i];
teks[i] = '0';
// Tampilkan teks
cout << teks << endl;
return 0;
}
#include <iostream>
#include <string>
using namespace std;
int main() {
char teks[] = "ABCDE 123";
string st = teks;
cout << st << endl;
return 0;
}
8/5/2017
Menny
cendana25.blogspot.com