C++ String съдържа подниз

C String S D Rza Podniz



В C++ имаме низов тип данни и можем да приложим различни функции, за да изпълняваме различните задачи с низовете. Можем да проверим дали поднизът присъства в оригиналния низ. Можем също да кажем, че „низът съдържа подниза“. В това ръководство ще научим техниките, които ни помагат да намерим „низът съдържа подниза“. Функциите “find()” и “strstr()” ни помагат при извършването на тази задача в програмирането на C++.

Пример 1:

„iostream“ и „string“ са заглавните файлове, които са включени тук, тъй като трябва да работим с низовете и също трябва да въвеждаме или извеждаме данните. Така че трябва да включим тези заглавни файлове тук. След това включваме „namespace std“ с помощта на ключовата дума „using“. Така че не е нужно да поставяме това „std“ с всички функции отделно в нашия код. След това тук се извиква функцията “main()”.







Сега декларираме низа „str_1“ и присвояваме някои данни от низ към тази променлива. След това инициализираме друга променлива с име „str_2“ от типа данни „низ“ и присвояваме „подобно“ на тази променлива „str_2“. Под това използваме ключовата дума „bool“, за да дадем верни или грешни резултати. Инициализираме „stringHasStr“ с този тип данни „bool“ и използваме функцията „find()“. Това търси „низът съдържа подниза“. „Str_1“ е пълният низ, а „str_2“ е поднизът.



Тук също добавяме ключовата дума „npos“, която се използва, за да покаже, че няма съвпадения в този низ. Той проверява дали низът съдържа подниз и съхранява резултата в тази променлива „stringHasStr“ bool.



След това се придвижваме напред към условието „if“ и предаваме тази променлива „stringHasStr“ на това условие „if“. Ако резултатът, който се съхранява в тази променлива bool, е „true“, изразът след това условие „if“ се използва, където използваме „cout“ и показваме низа, който се намира тук. Но ако „фалшивият“ резултат се съхранява в тази променлива bool, другата част се използва и показва, че низът не е намерен тук.





Код 1:

#include
#include <низ>

използване на пространство от имена std;
int main ( )
{
низ str_1 = „Харесвам езика за програмиране C++“ ;
низ str_2 = 'като' ;
bool stringHasStr = str_1.find ( str_2 ) ! = низ::npos;
ако ( stringHasStr ) {
cout << 'Ние намираме низа тук, който е ' << str_2 << endl;
}
друго {
cout << „Низът не е намерен“ << endl;
}
връщане 0 ;
}



Изход:

Този даден изход показва, че низът съдържа подниза и го показва тук. Ние проверяваме това, като използваме функцията „find()“.

Пример 2:

Тук включваме три заглавни файла, които са „iostream“, „string“ и „cstring“. След това извикайте „main()“, след като поставите „namespace std“. Низът “new_str” вече е деклариран и са присвоени някои данни за низ.

След това инициализираме втора променлива от типа данни „низ“, наречена „sub_str“, и й даваме стойността „very“. След това поставяме „const char*“. Така че промяната на стойността на показалеца, за да сочи към другото място в паметта, е невъзможна. Ние декларираме променливата „FindingStr“ като този указател „const char*“ тук. Инициализираме го с метода „strstr()“ и предаваме и двата низа заедно с функцията „c_str()“, която трансформира низ в масив от знаци, който завършва с нулева стойност. Този метод “strstr()” помага при проверка дали низът “new_str” съдържа подниза “sub_str” или не. След това имаме „if“, в който добавяме „FindingStr“. Ако намери подниза в оригинала, операторът след „if“ се изпълнява, където използваме „cout“. Ако поднизът не бъде намерен, той директно се придвижва към частта „else“ и отпечатва резултата, който се поставя след частта „else“.

Код 2:

#include
#include <низ>
#include

използване на пространство от имена std;
int main ( )
{
низ new_str = „Навън вали и времето е много приятно.“ ;
низ sub_str = 'много' ;
const char * FindingStr = strstr ( нов_str.c_str ( ) , sub_str.c_str ( ) ) ;
ако ( FindingStr ) {
cout << 'Намираме низа и низът е: ' << sub_str << endl;
}
друго {
cout << „Низът не е намерен“ << endl;
}
връщане 0 ;
}

Изход:

Може да забележим, че даденият низ съдържа подниза, тъй като показва израза, който добавихме след „if“ и отпечатва подниза тук. Ние проверяваме това, като използваме функцията 'strstr()'.

Пример 3:

Тук инициализираме две низови променливи: “myNewStr” и “mySubStr”. След това присвояваме някои низови данни и декларираме две цели променливи: “posOfStr” и “indexOfStr”.

Под това използваме цикъла “while()” и присвояваме функционалната променлива “find()” на променливата “indexOfStr” вътре в този цикъл “while()”. Предаваме две променливи към тази функция „find()“, които са „mySubStr“ и „posOfStr“. След това поставяме ключовата дума „npos“, която проверява дали резултатът от функцията „find“ не е равен на „npos“. След това използваме „cout“, който увеличава стойността на индекса с единица и я съхранява в променливата „posOfStr“.

Код 3:

#include
#include <низ>

използване на пространство от имена std;
int main ( ) {
низ myNewStr = 'тук намираме низа' ;
низ mySubStr = 'низ' ;
int posOfStr = 0 ;
int indexOfStr;
докато ( ( indexOfStr = myNewStr.find ( mySubStr, posOfStr ) ) ! = низ::npos ) {
cout << ' Поднизът е ' << ''' << mySubStr << ''' << ' Намерено на индексен номер : ' << indexOfStr << endl;
posOfStr = indexOfStr + 1 ;
}
връщане 0 ;
}

Изход:

Тук показва, че даденият низ съдържа подниза и индексният номер на този низ е „19“, което също се показва в този резултат.

Пример 4:

В този код включваме заглавния файл 'bits/stdc++.h'. Сега не е необходимо да включваме други заглавни файлове, тъй като те съдържат всички необходими библиотеки. След като извикаме „main()“, ние инициализираме променливите „org_str“ и „sub_str“ от типа данни „string“. След това добавяме условието „if“, в което използваме функцията „strstr()“. Тази функция търси, за да види дали дадения низ съдържа желания подниз. След това добавяме оператор „cout“, за да отпечатаме, че поднизът се намира тук. След това поставяме и частта „else“, която се изпълнява само когато условието „if“ не е изпълнено или поднизът не е намерен в низа.

След това декларираме променливата „sub_str2“ и присвояваме низови данни тук. След това се вмъква условието „if“ и се използва функцията „strstr()“. Този метод търси дали предоставеният низ съдържа или не искания подниз. След това резултатът се отпечатва тук с помощта на командата „cout“. Ние също така включваме раздел „друго“, който се изпълнява само ако условието „ако“ не е изпълнено или ако поднизът не може да бъде разположен в низа.

Код 4:

#include
използване на пространство от имена std;
int main ( ) {
низ org_str = „Език за програмиране C++“ ;
низ sub_str = 'Програма' ;
ако ( strstr ( org_str.c_str ( ) ,sub_str.c_str ( ) ) )
{
cout << 'Поднизът тук е ' << ''' << sub_str << ''' << ' присъства в ' << org_str << endl;
}
друго {
cout << „Поднизът не присъства в низа.“ << endl;
}
низ sub_str2 = 'Java' ;

ако ( strstr ( org_str.c_str ( ) ,sub_str2.c_str ( ) ) )
{
cout << 'Поднизът тук е ' << ''' << sub_str2 << ''' << ' присъства в ' << org_str << endl;
}
друго {
cout << „Поднизът не присъства в този низ.“ << endl;
}
връщане 0 ;
}

Изход:

Резултатът от първата функция „strstr()“ показва, че низът съдържа подниза, но резултатът от втората функция „strstr()“ показва, че поднизът не присъства в низа.

Заключение

Понятието „низът съдържа подниз“ е подробно разгледано в това ръководство. Разгледахме два метода, които помагат при търсенето дали „низът съдържа подниза“. Обяснихме функциите „find()“, както и „strstr()“, които C++ предоставя тук в това ръководство за изпълнение на тази задача. Ние демонстрираме с уникални примери, в които научихме как да използваме тези функции, за да проверим дали „низът съдържа подниза“ в него.