Обязательное условие
Прежде чем проверять примеры этого руководства, вы должны проверить, установлен ли компилятор g ++ в системе. Если вы используете Visual Studio Code, установите необходимые расширения для компиляции исходного кода C ++ и создания исполняемого кода. Здесь приложение Visual Studio Code было использовано для компиляции и выполнения кода C ++.
Синтаксис
строка substr (size_t pos = 0, size_t len = npos) const;
Здесь первый аргумент содержит начальную позицию, с которой будет начинаться подстрока, а второй аргумент содержит длину подстроки. Функция вернет подстроку, если указаны допустимая начальная позиция и длина. Различные варианты использования этой функции показаны в следующей части этого руководства.
Пример 1: Простое использование substr ()
В следующем примере показано наиболее распространенное и простое использование функции substr (). Создайте файл C ++ со следующим кодом для создания подстроки из строкового значения. Строковой переменной присвоена строка из нескольких слов. Затем допустимая начальная позиция и длина подстроки указываются в значениях аргументов функции substr (). И исходная строка, и подстрока будут напечатаны после выполнения кода.
// Включаем необходимые библиотеки
#включают
#включают
intглавный() {
// Определяем строковую переменную
часы::нитьoriginalstrзнак равно'Добро пожаловать в Linuxhint';
// Вырезаем подстроку с помощью substr ()
часы::нитьnewstrзнак равноoriginalstr.substr (одиннадцать,9);
// Распечатываем исходную строку
часы::Стоимость <<'Исходная строка:' <<originalstr<< ' п';
// Распечатываем подстроку
часы::Стоимость <<'Подстрока:' <<newstr<< ' п';
возвращение 0;
}
Выход:
Согласно коду, исходная строка - ' Добро пожаловать в LinuxHint ‘. 11 задано в качестве начальной позиции подстроки, которая является позицией символа «L», а 9 задано как значение длины подстроки. ‘ LinuxHint ‘Возвращается как результат функции substr () после выполнения кода.
Пример 2: Использование substr () на основе позиции определенной строки
Следующий код сгенерирует подстроку после поиска позиции конкретной строки. Создайте файл C ++ со следующим кодом для тестирования кода. В коде определено строковое значение из нескольких слов. Затем позиция конкретной строки ищется в основной строке с помощью функции find (). Функция substr () использовалась для генерации подстроки, начиная с начала строки до значения позиции, которое будет возвращено функцией find ().
// Включаем необходимые библиотеки#включают
#включают
с использованием пространство именчасы;
intглавный()
{
часы::нитьstrDataзнак равно «Мне нравится программирование на C ++»;
// Давайте найдем положение '-' с помощью str.find ()
intпозициязнак равноstrData.найти('программирование');
// Мы получим подстроку до этого шаблона
часы::нитьnewstrзнак равноstrData.substr(0, позиция);
часы::Стоимость <<strData<< ' п';
часы::Стоимость <<newstr<< ' п';
возвращение 0;
}
Выход:
Согласно коду, основное строковое значение: Мне нравится программирование на C ++ а значение поисковой строки: ‘ программирование который существует в основной строке. Итак, на выходе получается ' Мне нравится C ++ ‘После выполнения кода.
Пример 3: Использование substr () с обработкой исключений
В следующем коде функция substr () использовалась с обработкой исключений. Исключение будет сгенерировано, если в функции substr () задана недопустимая начальная позиция. Создайте файл C ++ со следующим кодом для тестирования кода. В блоке try было присвоено строковое значение из одного слова, а недопустимая начальная позиция была использована в функции substr (), которая вызовет исключение и распечатает сообщение об ошибке.
// Включаем необходимые библиотеки#включают
#включают
intглавный() {
пытаться{
// Определяем строковую переменную
часы::нитьoriginalstrзнак равно'Linuxhint';
// Вырезаем подстроку с помощью substr ()
часы::нитьnewstrзнак равноoriginalstr.substr (одиннадцать,9);
// Распечатываем подстроку
часы::Стоимость <<'Подстрока:' <<newstr<< ' п';
}
ловить (constчасы::вне зоны доступа) {
часы::Cerr << «Позиция вне допустимого диапазона. п';
}
возвращение 0;
}
Выход:
Согласно коду, основное строковое значение: LinuxHint а значение начальной позиции - 11, которого не существует. Итак, исключение было сгенерировано, и сообщение об ошибке было напечатано после выполнения кода.
Пример 4: Использование substr () для разделения строки
В следующем примере показано использование функции substr () для разделения строки на основе разделителя. Функция find () использовалась для поиска позиции разделителя, а функция erase () использовалась для удаления разделенной строки с разделителем из основной строки. Цикл «while» использовался для поиска всех позиций разделителя в основной строке и сохранения разделенного значения в векторном массиве. Затем были напечатаны значения векторного массива.
// Включаем необходимые библиотеки#включают
#включают
#включают
intглавный(){
// Определяем строку
часы::нитьstringDataзнак равно 'PHP: C ++: Python:';
// Определяем разделитель
часы::нитьразделительзнак равно ':';
// Объявить векторную переменную
часы::векторязыки{};
// Объявить целочисленную переменную
intпозиция;
// Объявить строковую переменную
часы::нитьOutstr;
/ *
Разделите строку с помощью функции substr ()
и добавляем разделенное слово в вектор
* /
в то время как ((позициязнак равноstringData.найти(разделитель)) !знак равночасы::нить::нпо) {
языков.отталкивать(stringData.substr(0, позиция));
stringData.стереть(0, позиция+разделитель.длина());
}
// Вывести все разделенные слова
для (const авто &Outstr:языки) {
часы::Стоимость <<Outstr<<часы::конец;
}
возвращение 0;
}
Выход:
Согласно коду, основным строковым значением является PHP: C ++: Python и значение разделителя: ' : ’ . Следующий вывод появится после выполнения вышеуказанного сценария.
Заключение
Основная цель использования функции substr () - извлечь подстроку из строки, указав начальную позицию и длину подстроки. Различные варианты использования этой функции были объяснены в этом руководстве с использованием нескольких примеров, чтобы помочь новым пользователям C ++ правильно использовать ее в своем коде.