Предварително условие
Преди да проверите примерите на този урок, трябва да проверите дали компилаторът 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главен() {
// Дефиниране на низова променлива
часа::низоригинал=„Добре дошли в Linuxhint“;
// Изрязване на подниза с помощта на substr ()
часа::низnewstr=оригинал.подстр (единадесет,9);
// Отпечатайте оригиналния низ
часа::цена <<„Оригиналният низ е:“ <<оригинал<< 'н';
// Отпечатване на подниза
часа::цена <<„Поднигата е:“ <<newstr<< 'н';
връщане 0;
}
Изход:
Според кода оригиналният низ е „ Добре дошли в LinuxHint ‘. 11 е дал като начална позиция на подниза, която е позицията на знака „L“, а 9 е дал като стойност на дължината на подниза. ‘ LinuxHint ‘Се върна като изход на функцията substr () след изпълнение на кода.
Пример 2: Използване на substr () въз основа на позицията на конкретен низ
Следният код ще генерира подниза след търсене на позицията на конкретния низ. Създайте C ++ файл със следния код, за да тествате кода. В кода е дефинирана низова стойност на множество думи. След това позицията на определен низ се търси в основния низ с помощта на функцията find (). Функцията substr () е използвана за генериране на подниза, започвайки от началото на низ до стойността на позицията, която ще бъде върната от функцията find ().
// Включете необходимите библиотеки#включва
#включва
използвайки пространство на именатачаса;
intглавен()
{
часа::низstrData= „Харесва ми програмирането на C ++“;
// Нека намерим позицията на '-', използвайки str.find ()
intпозиция=strData.намирам('програмиране');
// Ще получим поднигата до този модел
часа::низnewstr=strData.подстр(0, позиция);
часа::цена <<strData<< 'н';
часа::цена <<newstr<< 'н';
връщане 0;
}
Изход:
Според кода основната стойност на низа е, Харесва ми програмирането на C ++ и стойността на низа за търсене е „ програмиране ' който съществува в основния низ. И така, изходът е „ Харесвам C ++ ‘След изпълнение на кода.
Пример 3: Използване на substr () с обработка на изключения
Функцията substr () е използвана с обработка на изключения в следния код. Изключението ще бъде генерирано, ако невалидната начална позиция е дадена във функцията substr (). Създайте C ++ файл със следния код, за да тествате кода. В блока try е зададена стойност на низ от една дума и е използвана невалидна начална позиция във функцията substr (), която ще изведе изключение и ще отпечата съобщението за грешка.
// Включете необходимите библиотеки#включва
#включва
intглавен() {
опитвам{
// Дефиниране на низова променлива
часа::низоригинал=„Linuxhint“;
// Изрязване на подниза с помощта на substr ()
часа::низnewstr=оригинал.подстр (единадесет,9);
// Отпечатване на подниза
часа::цена <<„Поднигата е:“ <<newstr<< 'н';
}
улов (constчаса::извън обхват) {
часа::cerr << „Позицията е извън обхвата.н';
}
връщане 0;
}
Изход:
Според кода основната стойност на низа е, LinuxHint и стойността на началната позиция е 11, която не съществува. И така, изключението е генерирано и съобщението за грешка е отпечатано след изпълнение на кода.
Пример 4: Използване на substr () за разделяне на низ
Следващият пример показва използването на функцията substr () за разделяне на низ на базата на разделител. Функцията find () е използвана за търсене на позицията на разделителя, а функцията erase () е използвана за премахване на разделения низ с разделителя от основния низ. Цикълът „while“ използва за намиране на всички позиции на разделителя в основния низ и съхраняване на разделената стойност във векторния масив. След това стойностите на векторния масив са отпечатани.
// Включете необходимите библиотеки#включва
#включва
#включва
intглавен(){
// Определяне на низ
часа::низstringData= 'PHP: C ++: Python:';
// Определете разделителя
часа::низразделител= ':';
// Деклариране на векторната променлива
часа::векторезици{};
// Деклариране на целочислена променлива
intпозиция;
// Деклариране на променлива на низ
часа::низизлизам;
/ *
Разделете низа с помощта на функцията substr ()
и добавяне на разделената дума във вектора
* /
докато ((позиция=stringData.намирам(разделител)) !=часа::низ::npos) {
езици.избутвам(stringData.подстр(0, позиция));
stringData.изтрива(0, позиция+разделител.дължина());
}
// Отпечатайте всички разделени думи
за (const Автоматичен &излизам:езици) {
часа::цена <<излизам<<часа::endl;
}
връщане 0;
}
Изход:
Според кода основната низова стойност е PHP: C ++: Python и стойността на разделителя е „ : ' . Следният изход ще се появи след изпълнение на горния скрипт.
Заключение
Основната цел на използването на функцията substr () е да се извлече подниза от низ чрез споменаване на началната позиция и дължината на подниза. Различните употреби на тази функция са обяснени в този урок, като се използват множество примери, за да се помогне на новите потребители на C ++ да я използват правилно в кода си.