C++'da find_first_of() işlevi nasıl kullanılır?

How Use Find_first_of Function C



Dize verileriyle çalışmak için C++'da farklı yerleşik işlevler bulunur. NS find_first_of() işlevi, belirtilen karakterin ilk geçtiği yeri bulmak için kullanılır. Bu işlev, bu işlevin bağımsız değişken değeri olarak verilecek dizenin ilk oluşumunun konumunu döndürür. Bu öğreticide, C++'da dize aramak için bu işlevin farklı kullanımları açıklanmıştır.

Ön koşul

Bu öğreticinin örneklerini kontrol etmeden önce, sistemde g++ derleyicisinin kurulu olup olmadığını kontrol etmelisiniz. Visual Studio Code kullanıyorsanız, yürütülebilir kodu oluşturmak için C++ kaynak kodunu derlemek için gerekli uzantıları yükleyin. Burada, C++ kodunu derlemek ve yürütmek için Visual Studio Code uygulaması kullanılmıştır.







find_first_of() işlevinin özellikleri

NS find_first_of() işlevi, ilk bağımsız değişkenin değerine göre farklı türde değişkenler döndürebilir. İlk bağımsız değişken değeri bir dize ise, dizenin arama konumunu döndürür. İlk argümanda bir karakter dizisine işaretçi verilmişse, karakter dizisinin arama konumunu döndürür. Üçüncü argümanın değeri verilirse arabellek konumunu döndürür. İlk argümanda bir karakter verilmişse ve ana dizgede mevcutsa karakter konumunu döndürür. Aramanın başlangıç ​​konumu, bu işlevin ikinci argümanında belirlenir. Bu işlevin farklı sözdizimi aşağıda verilmiştir.



Sözdizimi

string size_t find_first_of (const string& str, size_t konum = 0) const;
c-string size_t find_first_of (const karakter* s, size_t konum = 0) const;
arabellek size_t find_first_of (const karakter* s, size_t konum, size_t n) const;
karakter size_t find_first_of (karakter c, size_t konum = 0) const;



Örnek 1: Bir dizenin belirli karakterini arayın ve değiştirin

Aşağıdaki örnek, bir dizedeki belirli bir karakterin konumunu aramanın yolunu gösterir. Belirli bir karakteri başka bir karakterle değiştirmek için aşağıdaki kodla bir C++ dosyası oluşturun. Kodda, find_first_of() işlevi, bir dizedeki belirli bir karakterin tüm konumlarını aramak ve döngüyü kullanarak karakterleri başka bir karakterle değiştirmek için kullanılmıştır. Orijinal dize ve değiştirilen dize, kod yürütüldükten sonra yazdırılacaktır.





// Çıktıyı yazdırmak için dahil et
#Dahil etmek
//size_t kullanmak için dahil et
#Dahil etmek

intana()
{
// Bir dize değişkenini başlat
saat::sicimstrData('LinuxHint'e Hoş Geldiniz');
//Orijinal dizgiyi yazdır
saat::maliyet << 'Orijinal dize:' +strData<< ' ';
//'i' karakterinin tüm pozisyonunu bul
saat::size_tArama Listesi=strData.find_first_of('ben');
//Tüm 'i'leri '@' ile değiştirmek için döngüyü yineleyin
süre (Arama Listesi!=saat::sicim::npos)
{
strData[Arama Listesi] = '@';
Arama Listesi=strData.find_first_of('ben',Arama Listesi+1);
}
//değiştirilen dizgiyi yazdır
saat::maliyet << 'Değiştirilen dize:' +strData<< ' ';

dönüş 0;
}

Çıktı:

Yukarıdaki kodu çalıştırdıktan sonra aşağıdaki çıktı görünecektir.



Örnek 2: Arama karakterlerinin ilk konumunu arayın

Birden çok karakterden oluşan bir dizenin konumunu aramak ve ana dizeyle eşleşen karakterin ilk konumunu döndürmek için aşağıdaki kodla bir C++ dosyası oluşturun. Bir dizi değişkenine bir dizi verisi atanmıştır ve ilk konum bir tamsayı değişkeninde depolanmıştır. Konum değeri, kod yürütüldükten sonra yazdırılacaktır.

// Çıktıyı yazdırmak için dahil et
#Dahil etmek

intana()
{
// string değişkenini başlat
saat::sicimstrData( 'Temel C++ Programlama');
// Konumu depolamak için interger değişkenini bildirin
intkonum;
// 'C++' karakterini ara
konum=strData.find_first_of( 'K++' );
// Konum değerini kontrol et
Eğer (konum> = 0)
{
// Bulunan herhangi bir karakter varsa konumu yazdır
saat::maliyet << 'Karakter '' <<strData[konum]
<< '' bulundu' << 'pozisyonda' <<konum<< ' ';
}

dönüş 0;
}

Çıktı:

Yukarıdaki kodu çalıştırdıktan sonra aşağıdaki çıktı görünecektir. Burada, karakter, ' + ' dizenin, ' K++ ' konumunda buldu, 7 ana dizenin, ' Temel C++ Programlama '.

Örnek 3: Belirli bir konumdan sonra belirli bir karakteri arayın

Belirli bir konumdan sonra belirli bir karakteri aramak için aşağıdaki kodla bir C++ dosyası oluşturun. Dize değişkeninde bir dize verisi saklanır ve 13 konumundan sonra belirli bir dize aranır. Ana dizede arama dizesinin herhangi bir karakteri bulunursa, bir konum değeri döndürülür.

// Çıktıyı yazdırmak için dahil et
#Dahil etmek

intana()
{
// Bir dize değişkenini başlat
saat::sicimstrData= 'yaşamak için ye, yemek için yaşama';
//Orijinal dizgiyi yazdır
saat::maliyet << 'Orijinal dize:' +strData<< ' ';
//Son karakterin bulunduğu konumu yazdır
saat::maliyet<<'Konumda bulunan son eşleşen karakter :'
<<strData.find_first_of('NS',13) << ' ';
dönüş 0;
}

Çıktı:

Yukarıdaki kodu çalıştırdıktan sonra aşağıdaki çıktı görünecektir. Burada, karakter, ' ile ' dizenin, ' NS ' konumunda buldu, on beş ana dizenin, ' yaşamak için ye, yemek için yaşama '.

Örnek 4: İlk eşleşen numaranın konumunu arayın

İkinci vektör listesindeki ilk vektör listesinin her numarasını aramak ve ilk vektör listesinin eşleşen numarasının konumunu döndürmek için aşağıdaki kodla bir C++ dosyası oluşturun. Eşleşen bir bağımsız değişken bulunursa, konum değeri döndürülür; aksi takdirde, bir mesaj yazdırılacaktır.

// Çıktıyı yazdırmak için dahil et
#Dahil etmek
// Vektörde veri aramak için dahil et
#Dahil etmek
// Vektör verilerini kullanmak için dahil et
#Dahil etmek

intana()
{
//İki vektör listesi bildir
saat::vektörliste1{10,5,65,31,7};
saat::vektörliste2{2,77,5,38,32,55};
//list1'in verilerini liste2'de ara
Otoçıktı=saat::find_first_of(liste1.başlamak(), liste1.son(), liste2.başlamak(), liste2.son());
// Eşleşen sayının konumunu oku
intkonum=saat::mesafe(liste1.başlamak(), çıktı);

// Herhangi bir sayıda liste2 ile herhangi bir sayıda liste1 eşleşmesini kontrol edin
Eğer (çıktı<liste1.son()) {
saat::maliyet << 'İlk eşleşen numara' <<liste1[konum] << ' konumunda bulundu' <<konum<< ' ';
}
Başka {
saat::maliyet << 'Eşleşen numara bulunamadı. ';
}
}

Çıktı:

Yukarıdaki kodu çalıştırdıktan sonra aşağıdaki çıktı görünecektir. Birinci dizinin sayı değeri 5, ikinci dizide yer alır ve bu sayının konumu 1'dir.

Çözüm

find_first_of() işlevi, çeşitli programlama amaçları için bir karakter veya sayı aramak için kullanılabilir. Bu fonksiyon, çeşitli arama problemlerini çözmek için kullanılabilir. Umarım C++ programcısı bu öğreticiyi okuduktan sonra bu işlevi düzgün bir şekilde kullanabilir.