Как да използвате функцията find_first_of () в C ++

How Use Find_first_of Function C



В C ++ съществуват различни вградени функции за работа с низовите данни. The find_first_of () функция се използва за намиране на местоположението на първото появяване на посочения знак. Тази функция връща позицията на първото появяване на низа, която ще бъде дадена като стойност на аргумента на тази функция. В този урок са обяснени различни приложения на тази функция за търсене на низ в C ++.

Предварително условие

Преди да проверите примерите на този урок, трябва да проверите дали компилаторът g ++ е инсталиран или не в системата. Ако използвате Visual Studio Code, инсталирайте необходимите разширения, за да компилирате C ++ изходния код, за да създадете изпълнимия код. Тук приложението Visual Studio Code е използвано за компилиране и изпълнение на C ++ кода.







Характеристики на функцията find_first_of ()

The find_first_of () функцията може да връща различни типове променливи въз основа на стойността на първия аргумент. Той ще върне позицията за търсене на низ, ако първата стойност на аргумента е низ. Той ще върне позицията за търсене на символния низ, ако показалецът към масив от знаци е даден в първия аргумент. Той ще върне буферната позиция, ако е дадена стойността на третия аргумент. Той ще върне позицията на знака, ако в първия аргумент е даден знак и той съществува в основния низ. Началната позиция на търсенето е зададена във втория аргумент на тази функция. Различният синтаксис на тази функция е даден по -долу.



Синтаксис

низ size_t find_first_of (const низ & str, size_t pos = 0) const;
c-низ size_t find_first_of (const char* s, size_t pos = 0) const;
буфер size_t find_first_of (const char* s, size_t pos, size_t n) const;
размер size_t find_first_of (char c, size_t pos = 0) const;



Пример 1: Потърсете и заменете конкретния символ на низ

Следващият пример показва начина за търсене на позицията на конкретния знак в низ. Създайте C ++ файл със следния код, за да замените конкретния знак с друг. В кода, find_first_of () функцията е била използвана за търсене във всички позиции на определен символ в низ и замяна на знаците с друг знак, като се използва цикълът. Оригиналният низ и замененият низ ще бъдат отпечатани след изпълнение на кода.





// Включва за отпечатване на изхода
#включва
// Включване за използване на size_t
#включва

intглавен()
{
// Инициализира низова променлива
часа::низstrData(„Добре дошли в LinuxHint“);
// Отпечатайте оригиналния низ
часа::цена << „Оригиналният низ е:“ +strData<< 'н';
// Разберете цялата позиция на знака „i“
часа::size_tsearchList=strData.find_first_of('аз');
// Повторете цикъла, за да замените всички „i“ с „@“
докато (searchList!=часа::низ::npos)
{
strData[searchList] = „@“;
searchList=strData.find_first_of('аз', searchList+1);
}
// Отпечатайте модифицирания низ
часа::цена << 'Модифицираният низ е:' +strData<< 'н';

връщане 0;
}

Изход:

Следният изход ще се появи след изпълнение на горния код.



Пример 2: Търсете първата позиция на търсещите символи

Създайте C ++ файл със следния код, за да търсите позицията на низ от множество знаци и да върнете първата позиция на знака, която съвпада с основния низ. Низови данни са присвоени в низова променлива, а първата позиция се съхранява в целочислена променлива. Стойността на позицията ще бъде отпечатана след изпълнение на кода.

// Включва за отпечатване на изхода
#включва

intглавен()
{
// Инициализира низовата променлива
часа::низstrData( „Основно програмиране на C ++“);
// Декларираме междинната променлива за съхраняване на позицията
intпозиция;
// Търсене в знака „C ++“
позиция=strData.find_first_of( „K ++“ );
// Проверете стойността на позицията
ако (позиция> = 0)
{
// Отпечатайте позицията, ако е намерен някакъв знак
часа::цена << 'Характерът '' <<strData[позиция]
<< '' е намерил' << 'на позиция' <<позиция<< 'н';
}

връщане 0;
}

Изход:

Следният изход ще се появи след изпълнение на горния код. Тук героят, „ + “От низа,„ K ++ “Е открил на позицията, 7 от основния низ, ‘ Основно програмиране на C ++ '.

Пример 3: Търсете определен символ след определената позиция

Създайте C ++ файл със следния код, за да търсите определен символ след конкретната позиция. Данни от низ се съхраняват в променливата на низ, а определен низ се търси след позицията, 13. Ако в главния низ е намерен някакъв знак от търсещия низ, тогава ще бъде върната стойност на позиция.

// Включва за отпечатване на изхода
#включва

intглавен()
{
// Инициализира низова променлива
часа::низstrData= 'яжте, за да живеете, а не живейте, за да ядете';
// Отпечатайте оригиналния низ
часа::цена << „Оригиналният низ е:“ +strData<< 'н';
// Отпечатайте позицията, където е намерен последният знак
часа::цена<<'Последният съвпадащ знак, намерен на позицията:'
<<strData.find_first_of('в',13) << 'н';
връщане 0;
}

Изход:

Следният изход ще се появи след изпълнение на горния код. Тук героят, „ да се “От низа,„ при “Е открил на позицията, петнадесет от основния низ, ‘ яжте, за да живеете, а не живейте, за да ядете '.

Пример 4: Търсете позицията на първото съвпадащо число

Създайте C ++ файл със следния код, за да търсите всеки номер от първия векторен списък във втория векторен списък и да върнете позицията на съвпадащия номер на първия векторен списък. Ако се намери съвпадащ аргумент, тогава стойността на позицията ще бъде върната; в противен случай ще бъде отпечатано съобщение.

// Включва за отпечатване на изхода
#включва
// Включване за търсене на данни във вектора
#включва
// Включване за използване на векторни данни
#включва

intглавен()
{
// Декларира два векторни списъка
часа::векторсписък1{10,5,65,31,7};
часа::векторсписък2{2,77,5,38,32,55};
// Търсене в данните на list1 в list2
Автоматиченизход=часа::find_first_of(списък1.започнете(), списък1.край(), списък2.започнете(), списък2.край());
// Прочетете позицията на съвпадащия номер
intпозиция=часа::разстояние(списък1.започнете(), изход);

// Проверете какъв брой списък1 съвпада с произволен брой списък2
ако (изход<списък1.край()) {
часа::цена << „Първото съвпадащо число“ <<списък1[позиция] << „намерен на позиция“ <<позиция<< 'н';
}
иначе {
часа::цена << „Не е намерен съвпадащ номер.н';
}
}

Изход:

Следният изход ще се появи след изпълнение на горния код. Стойността на числото 5 от първия масив съществува във втория масив и позицията на това число е 1.

Заключение

Функцията find_first_of () може да се използва за търсене на знак или число за различни цели на програмиране. Тази функция може да се използва за решаване на различни проблеми с търсенето. Надявам се, че програмистът на C ++ може да използва тази функция правилно, след като прочете този урок.