Предварително условие
Преди да проверите примерите на този урок, трябва да проверите дали компилаторът 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 ++ може да използва тази функция правилно, след като прочете този урок.