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

How Use Substr Function C



Способ вырезания любой части из строки называется подстрокой. Функция substr () существует в C ++ для генерации новой строки путем вырезания определенной части из строки. В string.h Для использования этой функции требуется включить файл библиотеки. У этой функции два аргумента. Первый аргумент содержит начальную позицию новой строки, а второй аргумент содержит длину строки. В этом руководстве объясняется, как использовать функцию substr () в C ++.

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

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