— C++ string::find —

Kerim Fırat
Oct 26, 2020

find(): Cpp string işlemlerinde,string veri içerisinde belli bir parçayı aramak için kullanılan “std::string” classına ait bir fonksiyondur.
Bu fonksiyon geri dönüş değeri olarak “size_t” tipinde bir veri döndürür. Aranan string parçası bulunduğu durumda stringin yer aldığı index başlangıç değeri,aksi halde “std::string::npos”’a eşit bir değer döndürür.

NOT:string::npos”,size_t maksimum değerini tutar.

find()’ın genel tanımlama ve kullanım biçimi aşağıdaki gibidir:
std::string find_in = “C++ find methodu kullanımı”;
size_t pos_f = find_in.find(“C++”);

find() fonksiyonu çeşitli sayıda parametreler alabilir.
Bu durum,string arama işmelerinde oldukça esnek bir kullanım sunmaktadır.
Ayrıca buna bağlı olarak çeşitli yapılarda arama yapabilmek için yine “find_” ismiyle çeşitli fonksiyonlar mevcuttur.Bunlar şöyledir:
-find_first_of() : String üzerinden baştan itibaren arama yapmak için kullanılır.
-find_last_of() : String üzerinden sondan itibaren arama yapmak için kullanılır.
-find_first_not_of() : Parametre olarak belirtilen stringle eşleşmeyeni bulmak için kullanılır.
-find_last_not_of() : Bir öncekiyle aynı amaçta kullanılır.
Ancak bu fonksiyon,adından da anlaşılacağı üzere mevcut stringi sondan itibaren ele alarak arama yapar.

Find fonksiyonunu kullanırken dikkat etmemiz gereken bir diğer husus ise,
bu fonksiyonun büyük-küçük harf duyarlı olduğudur.
Dolayısıyla string veriler üzerinden arama yaparken buna dikkat edilmelidir.
Bunun için Cpp bize yine “std” bünyesinde yer alan “transform()” fonksiyonunu sunuyor.
Bu fonksiyonu kullanarak elimizdeki string veriyi “tolower(kücük harflere çevir)”,veya “toupper(büyük harfe çevir)” ile sağlıklı aramaya uygun hale getirebiliriz.
transform() fonksiyon genel tanımlaması aşağıdaki gibidir:

std::transform(find_in.begin(),find_in.end(),find_in.begin(),::tolower);

String üzerinde arama yapan bir örnek aşağıda yer almaktadır:

String find() örnek
String find() output

the end

--

--

Kerim Fırat
Kerim Fırat

Written by Kerim Fırat

Senior Android Platform(AOSP,AAOS) Architect,Open Source Contributor | Turkey Java User Group Vice Chairman | Author

No responses yet