— C++ string::find —
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:
the end