Как да използвате функцията substr () в C ++

How Use Substr Function C



Начинът за изрязване на всяка част от низ се нарича подниза. Функцията substr () съществува в C ++ за генериране на нов низ чрез изрязване на определена част от низ. The низ.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главен() {
// Дефиниране на низова променлива
часа::низоригинал=„Добре дошли в 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 ++ да я използват правилно в кода си.