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