Niz C++ vsebuje podniz

Niz C Vsebuje Podniz



V C++ imamo podatkovni tip niz in lahko uporabimo različne funkcije za izvajanje različnih nalog z nizi. Lahko preverimo, ali je podniz prisoten znotraj izvirnega niza. Lahko tudi rečemo, da 'niz vsebuje podniz'. V tem priročniku se bomo naučili tehnik, ki nam pomagajo pri iskanju »niz vsebuje podniz«. Funkciji »find()« in »strstr()« nam pomagata pri izvajanju te naloge v programiranju C++.

Primer 1:

»iostream« in »string« sta datoteki glave, ki sta vključeni tukaj, saj moramo delati z nizi in moramo tudi vnesti ali izpisati podatke. Torej moramo te datoteke glave vključiti sem. Po tem vključimo »namespace std« s pomočjo ključne besede »using«. Torej nam tega »std« z vsemi funkcijami ni treba postaviti ločeno v našo kodo. Nato se tukaj prikliče funkcija »main()«.







Zdaj deklariramo niz »str_1« in tej spremenljivki dodelimo nekaj podatkov niza. Nato inicializiramo še eno spremenljivko z imenom »str_2« podatkovnega tipa »string« in tej spremenljivki »str_2« dodelimo »like«. Pod tem uporabljamo ključno besedo »bool« za podajanje resničnih ali napačnih rezultatov. Inicializiramo »stringHasStr« s tem podatkovnim tipom »bool« in uporabimo funkcijo »find()«. To išče »niz vsebuje podniz«. »Str_1« je celoten niz, »str_2« pa podniz.



Tukaj dodamo tudi ključno besedo »npos«, ki se uporablja za prikaz, da v tem nizu ni ujemanj. Preveri, ali niz vsebuje podniz, in shrani rezultat v to spremenljivko »stringHasStr« bool.



Nato se premaknemo naprej proti pogoju »if« in posredujemo to spremenljivko »stringHasStr« temu pogoju »if«. Če je rezultat, ki je shranjen v tej spremenljivki bool, »true«, se za tem pogojem »if« uporabi stavek, kjer uporabimo »cout« in prikažemo niz, ki ga najdemo tukaj. Toda če je »napačen« rezultat shranjen v tej spremenljivki bool, se uporabi drugi del in prikaže, da niza tukaj ni mogoče najti.





Koda 1:

#include
#include

uporaba imenskega prostora std;
int main ( )
{
niz str_1 = 'Všeč mi je programski jezik C++' ;
niz str_2 = 'všeč mi je' ;
bool stringHasStr = str_1.find ( str_2 ) ! = niz::npos;
če ( stringHasStr ) {
cout << 'Tu najdemo niz, ki je ' << str_2 << endl;
}
drugače {
cout << 'Niz ni najden' << endl;
}
vrnitev 0 ;
}



Izhod:

Ta dani izhod upodobi, da niz vsebuje podniz in ga prikaže tukaj. To preverimo z uporabo funkcije 'find()'.

Primer 2:

Sem vključimo tri datoteke glave, ki so »iostream«, »string« in »cstring«. Nato pokličite »main()«, potem ko postavite »namespace std«. Niz »new_str« je zdaj deklariran in dodeljenih je nekaj podatkov niza.

Nato inicializiramo drugo spremenljivko podatkovnega tipa »niz«, imenovano »sub_str«, in ji damo vrednost »zelo«. Nato postavimo »const char*«. Torej spreminjanje vrednosti kazalca, da kaže na drugo lokacijo v pomnilniku, ni mogoče. Tukaj deklariramo spremenljivko »FindingStr« kot ta kazalec »const char*«. Inicializiramo ga z metodo »strstr()« in posredujemo oba niza skupaj s funkcijo »c_str()«, ki pretvori niz v matriko znakov, ki se konča z ničelno vrednostjo. Ta metoda “strstr()” pomaga pri preverjanju, ali niz “new_str” vsebuje podniz “sub_str” ali ne. Nato imamo »if«, v katerega dodamo »FindingStr«. Če najde podniz v izvirniku, se izvede stavek za 'if', kjer uporabimo 'cout'. Če podniza ni mogoče najti, se premakne neposredno proti delu »else« in natisne rezultat, ki je postavljen za delom »else«.

Koda 2:

#include
#include
#include

uporaba imenskega prostora std;
int main ( )
{
niz new_str = 'Zunaj dežuje in vreme je zelo prijetno.' ;
niz sub_str = 'zelo' ;
const char * FindingStr = strstr ( nova_str.c_str ( ) , sub_str.c_str ( ) ) ;
če ( FindingStr ) {
cout << 'Najdemo niz in niz je: ' << sub_str << endl;
}
drugače {
cout << 'Niza ni mogoče najti' << endl;
}
vrnitev 0 ;
}

Izhod:

Morda opazimo, da podani niz vsebuje podniz, saj prikazuje stavek, ki smo ga dodali za »če«, in natisne podniz tukaj. To preverimo z uporabo funkcije “strstr()”.

Primer 3:

Tukaj inicializiramo dve spremenljivki niza: “myNewStr” in “mySubStr”. Nato dodelimo nekaj nizovnih podatkov in deklariramo dve celoštevilski spremenljivki: “posOfStr” in “indexOfStr”.

Pod tem uporabimo zanko 'while()' in dodelimo funkcijsko spremenljivko 'find()' spremenljivki 'indexOfStr' znotraj te zanke 'while()'. V to funkcijo »find()« posredujemo dve spremenljivki, ki sta »mySubStr« in »posOfStr«. Nato postavimo ključno besedo 'npos', ki preveri, ali rezultat funkcije 'find' ni enak 'npos'. Po tem uporabimo »cout«, ki poveča vrednost indeksa za eno in jo shrani v spremenljivko »posOfStr«.

Koda 3:

#include
#include

uporaba imenskega prostora std;
int main ( ) {
niz myNewStr = 'tukaj najdemo niz' ;
niz mySubStr = 'vrvica' ;
int posOfStr = 0 ;
int indexOfStr;
medtem ( ( indexOfStr = myNewStr.find ( mySubStr, posOfStr ) ) ! = niz::npos ) {
cout << ' Podniz je ' << ''' << mySubStr << ''' << ' Najdeno na številki indeksa : ' << indexOfStr << endl;
posOfStr = indexOfStr + 1 ;
}
vrnitev 0 ;
}

Izhod:

Tu je prikazano, da podani niz vsebuje podniz in je številka indeksa tega niza »19«, kar je tudi prikazano v tem rezultatu.

Primer 4:

V to kodo vključimo datoteko glave »bits/stdc++.h«. Zdaj nam ni treba vključiti drugih datotek glave, saj vsebujejo vse zahtevane knjižnice. Po priklicu »main()« inicializiramo spremenljivki »org_str« in »sub_str« podatkovnega tipa »string«. Nato dodamo pogoj »if«, v katerem uporabimo funkcijo »strstr()«. Ta funkcija išče, ali dani niz vsebuje želeni podniz. Nato dodamo stavek 'cout', da napišemo, da je podniz tukaj. Nato dodamo tudi del “else”, ki se izvede le, če pogoj “if” ni izpolnjen ali podniza ni mogoče najti v nizu.

Po tem deklariramo spremenljivko 'sub_str2' in ji dodelimo podatke niza. Nato se vstavi pogoj »if« in uporabi se funkcija »strstr()«. Ta metoda išče, ali podani niz vsebuje zahtevani podniz ali ne. Rezultat je nato tukaj natisnjen z ukazom »cout«. Vključujemo tudi razdelek »drugo«, ki se zažene le, če pogoj »če« ni izpolnjen ali če podniza ni mogoče najti v nizu.

Koda 4:

#include
uporaba imenskega prostora std;
int main ( ) {
niz org_str = 'Programski jezik C++' ;
niz sub_str = 'Program' ;
če ( strstr ( org_str.c_str ( ) ,sub_str.c_str ( ) ) )
{
cout << 'Podniz tukaj je ' << ''' << sub_str << ''' << ' je prisoten v ' << org_str << endl;
}
drugače {
cout << 'Podniz ni prisoten v nizu.' << endl;
}
niz sub_str2 = 'Java' ;

če ( strstr ( org_str.c_str ( ) ,sub_str2.c_str ( ) ) )
{
cout << 'Podniz tukaj je ' << ''' << sub_str2 << ''' << ' je prisoten v ' << org_str << endl;
}
drugače {
cout << 'V tem nizu ni podniza.' << endl;
}
vrnitev 0 ;
}

Izhod:

Prvi rezultat funkcije »strstr()« kaže, da niz vsebuje podniz, rezultat druge funkcije »strstr()« pa kaže, da podniz ni prisoten v nizu.

Zaključek

Koncept 'niz vsebuje podniz' je v tem vodniku temeljito preučen. Raziskali smo dve metodi, ki pomagata pri iskanju, ali 'niz vsebuje podniz'. Funkciji »find()« in »strstr()«, ki ju C++ ponuja tukaj v tem priročniku, smo razložili za izvajanje te naloge. Demonstriramo z edinstvenimi primeri, v katerih smo se naučili, kako uporabiti te funkcije za preverjanje, ali 'niz vsebuje podniz' v sebi.