Как использовать функцию find_first_of () в C ++

How Use Find_first_of Function C



В C ++ существуют различные встроенные функции для работы со строковыми данными. В find_first_of () Функция используется для поиска местоположения первого вхождения указанного символа. Эта функция возвращает позицию первого вхождения строки, которая будет передана в качестве значения аргумента этой функции. В этом руководстве описаны различные варианты использования этой функции для поиска строки в C ++.

Обязательное условие

Прежде чем проверять примеры этого руководства, вы должны проверить, установлен ли компилятор g ++ в системе. Если вы используете Visual Studio Code, установите необходимые расширения для компиляции исходного кода C ++ и создания исполняемого кода. Здесь приложение Visual Studio Code было использовано для компиляции и выполнения кода C ++.







Особенности функции find_first_of ()

В find_first_of () функция может возвращать различные типы переменных в зависимости от значения первого аргумента. Он вернет позицию поиска строки, если значение первого аргумента является строкой. Он вернет позицию поиска строки символов, если указатель на массив символов указан в первом аргументе. Он вернет позицию в буфере, если задано значение третьего аргумента. Он вернет позицию символа, если символ указан в первом аргументе и существует в основной строке. Начальная позиция поиска задается вторым аргументом этой функции. Ниже приводится другой синтаксис этой функции.



Синтаксис

строка size_t find_first_of (const string & 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!знак равночасы::нить::нпо)
{
strData[searchList] знак равно '@';
searchListзнак равноstrData.find_first_of('я', searchList+1);
}
// Распечатываем измененную строку
часы::Стоимость << 'Модифицированная строка:' +strData<< ' п';

возвращение 0;
}

Выход:

Следующий вывод появится после выполнения вышеуказанного кода.



Пример 2: поиск в первой позиции искомых символов

Создайте файл C ++ со следующим кодом для поиска позиции строки из нескольких символов и возврата первой позиции символа, совпадающей с основной строкой. Строковые данные были присвоены строковой переменной, а первая позиция сохраняется в целочисленной переменной. Значение позиции будет напечатано после выполнения кода.

// Включаем для печати вывода
#включают

intглавный()
{
// Инициализируем строковую переменную
часы::нитьstrData( «Основы программирования на C ++»);
// Объявляем межжизненную переменную для хранения позиции
intпозиция;
// Ищем символ 'C ++'
позициязнак равноstrData.find_first_of( 'К ++' );
// Проверяем значение позиции
если (позиция> = 0)
{
// Выводим позицию, если найден какой-либо символ
часы::Стоимость << 'Персонаж '' <<strData[позиция]
<< '' Найдено' << 'на позиции' <<позиция<< ' п';
}

возвращение 0;
}

Выход:

Следующий вывод появится после выполнения вышеуказанного кода. Здесь персонаж ‘ + ’Строки,‘ К ++ 'Нашел в позиции, 7 основной струны, ‘ Основы программирования на C ++ '.

Пример 3: поиск определенного символа после определенной позиции

Создайте файл C ++ со следующим кодом для поиска определенного символа после определенной позиции. Строковые данные хранятся в строковой переменной, и конкретная строка ищется после позиции 13. Если какой-либо символ искомой строки был найден в основной строке, то будет возвращено значение позиции.

// Включаем для печати вывода
#включают

intглавный()
{
// Инициализируем строковую переменную
часы::нитьstrDataзнак равно 'есть, чтобы жить, а не жить, чтобы есть';
// Распечатываем исходную строку
часы::Стоимость << 'Исходная строка:' +strData<< ' п';
// Выводим позицию последнего найденного символа
часы::Стоимость<<'Последний совпадающий символ, найденный в позиции:'
<<strData.find_first_of('в',13) << ' п';
возвращение 0;
}

Выход:

Следующий вывод появится после выполнения вышеуказанного кода. Здесь персонаж ‘ к ’Строки,‘ в 'Нашел в позиции, пятнадцать основной струны, ‘ есть, чтобы жить, а не жить, чтобы есть '.

Пример 4: поиск позиции первого совпадающего числа

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

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

intглавный()
{
// Объявление двух векторных списков
часы::векторlist1{10,5,65,31 год,7};
часы::векторlist2{2,77,5,38,32,55};
// Ищем данные list1 в list2
автовыходзнак равночасы::find_first_of(список1.начинать(), список1.конец(), список2.начинать(), список2.конец());
// Считываем позицию совпадающего числа
intпозициязнак равночасы::расстояние(список1.начинать(), выход);

// Проверяем любое количество совпадений list1 с любым количеством list2
если (выход<список1.конец()) {
часы::Стоимость << 'Первое совпадающее число' <<list1[позиция] << 'найдено в позиции' <<позиция<< ' п';
}
еще {
часы::Стоимость << 'Соответствующий номер не найден. п';
}
}

Выход:

Следующий вывод появится после выполнения вышеуказанного кода. Числовое значение 5 первого массива существует во втором массиве, и позиция этого числа равна 1.

Заключение

Функция find_first_of () может использоваться для поиска символа или числа в различных целях программирования. Эта функция может использоваться для решения различных задач поиска. Я надеюсь, что программист на C ++ сможет правильно использовать эту функцию после прочтения этого руководства.