C++ - Mencari String dengan strstr()
By
Rachmat Santoso
—
Senin, 03 Juli 2017
—
Cplusplus
C++
menyediakan suatu fungsi bawaan yang dapat kita gunakan untuk mencari string
(substring) pada string. Fungsi tersebut
adalah strstr().
Bentuk penulisan:
strstr(string1, string2);
Keterangan
string1: String
yang menjadi tempat pencarian
string2:
String yang dicari
Berikut
adalah program yang menunjukkan penggunaan fungsi strstr().
/*
C++ - strchr()
Microsoft visual Studio
Express 2012
[RS]
*/
#include <iostream>
#include <conio.h>
#include <string.h>
using namespace std;
int main()
{
char str1[] = "nblognlife.com";
char str2[] = "C++ Programming Language";
char *p1; //pointer ke string
char *p2; //pointer ke string
char *p3; //pointer ke string
p1 = strstr(str1,"lif");
p2 = strstr(str2,"Lang");
p3 = strstr(str2,"PROG");
cout<<"C++ - strstr()"<<endl;
cout<<"--------------"<<endl;
if(p1)
cout<<"\""<<p1<<"\" ditemukan pada string "<<str1<<endl;
if(p2)
cout<<"\""<<p2<<"\" ditemukan pada string "<<str2<<endl;
if(p3)
cout<<"\""<<p3<<"\" ditemukan pada string "<<str2<<endl;
_getche();
return 0;
}
Output
C++ - strstr()
--------------
"life.com" ditemukan pada string nblognlife.com
"Language" ditemukan pada string C++ Programming Language
--------------
"life.com" ditemukan pada string nblognlife.com
"Language" ditemukan pada string C++ Programming Language
Penjelasan
Pertama, pada
output program terlihat bahwa p3
tidak pernah dicetak dilayar, padahal jika diperhatikan string “PROG” ada pada
string “C++ Programming Language”. Mengapa
demikian? Hal ini dikarenakan strstr()
menerapkan case sensitive (huruf
kapital dan huruf kecil dibedakan).
Jika
tidak ingin memberlakukan case sensitive
maka kita harus sedikit berpikir untuk melakukannya. Bagaimana? Kita bisa melakukan konversi string ke huruf kecil atau
ke huruf kapital, tentunya “di belakang layar”. Misalkan jika program di atas
sedikit dimodifikasi dengan membuat string yang dicari diambil dari input yang
dilakukan user. Kita tidak perlu meminta user untuk memasukkan huruf kecil
semua atau huruf kapital semua. Bebaskan user memasukkan string yang ingin
dicari, selanjutnya lakukan konversi string ke huruf kapital/huruf kecil.
Contoh: User memasukkan string “prOg”. Maka
lakukan konversi pada string yang ingin dicari user dan string tempat
pencarian, samakan keduanya.
Kedua, perhatikan
output yang muncul. Ketika string yang dicari adalah “lif” mengapa yang muncul
adalah “life.com” tidak string “lif” saja, begitu juga dengan string “Lang”.
Hal ini dikarenakan nilai balik dari fungsi strstr() berupa pointer yang menunjuk ke string. Jadi ketika string
“lif” ditemukan pada string “nblognlife.com” maka pointer strstr() akan menunjuk string yang dimulai dari karakter
pertama dari string yang dicari yaitu ‘l’, sehingga akan ditampilkan di layar
“life.com”. Begitu juga dengan string “Lang” yang akan menampilan “Language”.
Baca juga fungsi string C++ lainnya:
1. Membandingkan String dengan strcmp() dan strncmp()
2. strcat() untuk Menggabungkan String pada C++
3. [C++] Membalik String dengan strrev()
4. strlwr() - C++ : Konversi String ke Huruf Kecil
5. strupr() - C++ : Konversi String ke Huruf Kapital
6. Menghitung String Masukan Dengan strlen() dan cin.gcount() – C++
7. [C++] Menyalin String Berbeda dengan Menyalin Bilangan (strcpy)
8. C++ - Mencari String dengan strstr()
Baca juga fungsi string C++ lainnya:
1. Membandingkan String dengan strcmp() dan strncmp()
2. strcat() untuk Menggabungkan String pada C++
3. [C++] Membalik String dengan strrev()
4. strlwr() - C++ : Konversi String ke Huruf Kecil
5. strupr() - C++ : Konversi String ke Huruf Kapital
6. Menghitung String Masukan Dengan strlen() dan cin.gcount() – C++
7. [C++] Menyalin String Berbeda dengan Menyalin Bilangan (strcpy)
8. C++ - Mencari String dengan strstr()
[RS]
Klik Like & Share jika postingan ini bermanfaat
Apa tanggapan Anda?
Berikan tanggapan Anda melalui kolom komentar yang telah disediakan.
- Gunakan bahasa yang sopan;
- Saat menjadikan postingan pada blog ini sebagai referensi, jangan lupa mencantumkan sumbernya (link dari blog ini).
Jika blog ini bermanfaat jangan lupa memberikan 'like' atau 'share' untuk mendapatkan update terbaru.
Terima kasih