C++ niz sadrži podniz

C Niz Sadrzi Podniz



U C++-u imamo tip podataka niza i možemo primijeniti različite funkcije za obavljanje raznih zadataka s nizovima. Možemo provjeriti postoji li podniz unutar izvornog niza. Također možemo reći da 'niz sadrži podniz'. U ovom vodiču naučit ćemo tehnike koje nam pomažu u pronalaženju 'niz sadrži podniz'. Funkcije “find()” i “strstr()” pomažu nam u obavljanju ovog zadatka u C++ programiranju.

Primjer 1:

'iostream' i 'string' su datoteke zaglavlja koje su ovdje uključene jer moramo raditi s nizovima, a također trebamo unositi ili ispisivati ​​podatke. Dakle, moramo uključiti ove datoteke zaglavlja ovdje. Nakon toga uključujemo 'namespace std' uz pomoć ključne riječi 'using'. Dakle, ne trebamo stavljati ovaj 'std' sa svim funkcijama odvojeno u naš kod. Zatim se ovdje poziva funkcija “main()”.







Sada deklariramo niz “str_1” i ovoj varijabli dodijelimo neke podatke niza. Zatim također inicijaliziramo drugu varijablu pod nazivom “str_2” tipa podataka “string” i dodjeljujemo “like” ovoj varijabli “str_2”. Ispod toga koristimo ključnu riječ 'bool' za davanje točnih ili lažnih rezultata. Inicijaliziramo 'stringHasStr' ovim tipom podataka 'bool' i koristimo funkciju 'find()'. Ovo pretražuje 'niz sadrži podniz'. 'Str_1' je cijeli niz, a 'str_2' je podniz.



Ovdje također dodajemo ključnu riječ 'npos' koja se koristi da pokaže da nema podudaranja u ovom nizu. Provjerava sadrži li niz podniz i pohranjuje rezultat u ovu bool varijablu “stringHasStr”.



Zatim idemo naprijed prema uvjetu 'if' i prosljeđujemo ovu varijablu 'stringHasStr' ovom uvjetu 'if'. Ako je rezultat koji je pohranjen u ovoj bool varijabli 'true', koristi se izjava nakon ovog 'if' uvjeta gdje koristimo 'cout' i prikazujemo niz koji se ovdje nalazi. Ali ako je 'false' rezultat pohranjen u ovoj bool varijabli, koristi se drugi dio i prikazuje se da niz nije ovdje pronađen.





Kod 1:

#include
#include

korištenje imenskog prostora std;
int glavni ( )
{
niz str_1 = 'Sviđa mi se programski jezik C++' ;
niz str_2 = 'Kao' ;
bool stringHasStr = str_1.nađi ( str_2 ) ! = niz::npos;
ako ( stringHasStr ) {
cout << 'Ovdje nalazimo niz koji je ' << str_2 << endl;
}
drugo {
cout << 'Niz nije pronađen' << endl;
}
povratak 0 ;
}



Izlaz:

Ovaj dati izlaz prikazuje da niz sadrži podniz i prikazuje ga ovdje. To provjeravamo korištenjem funkcije 'find()'.

Primjer 2:

Ovdje uključujemo tri datoteke zaglavlja koje su 'iostream', 'string' i 'cstring'. Zatim pozovite “main()” nakon postavljanja “namespace std”. Niz “new_str” sada je deklariran i dodijeljeni su neki podaci niza.

Zatim inicijaliziramo drugu varijablu tipa podataka 'string' pod nazivom 'sub_str' i dajemo joj vrijednost 'very'. Zatim postavljamo 'const char*'. Stoga je nemoguće promijeniti vrijednost pokazivača da pokazuje na drugu lokaciju u memoriji. Ovdje deklariramo varijablu “FindingStr” kao ovaj pokazivač “const char*”. Inicijaliziramo ga metodom “strstr()” i prosljeđujemo oba niza zajedno s funkcijom “c_str()” koja transformira niz u niz znakova koji završava nultom vrijednošću. Ova metoda “strstr()” pomaže u provjeri sadrži li niz “new_str” podniz “sub_str” ili ne. Zatim imamo “if” u koji dodajemo “FindingStr”. Ako pronađe podniz u izvorniku, izvršava se naredba nakon 'if' gdje koristimo 'cout'. Ako podniz nije pronađen, izravno se pomiče prema dijelu 'else' i ispisuje rezultat koji se nalazi nakon dijela 'else'.

Kod 2:

#include
#include
#include

korištenje imenskog prostora std;
int glavni ( )
{
niz novi_str = 'Vani pada kiša i vrijeme je vrlo ugodno.' ;
string sub_str = 'vrlo' ;
const char * FindingStr = strstr ( nova_str.c_str ( ) , pod_str.c_str ( ) ) ;
ako ( FindingStr ) {
cout << 'Pronašli smo niz, a niz je: ' << pod_str << endl;
}
drugo {
cout << 'Niz nije pronađen' << endl;
}
povratak 0 ;
}

Izlaz:

Mogli bismo primijetiti da navedeni niz sadrži podniz jer prikazuje izjavu koju smo dodali nakon 'if' i ovdje ispisuje podniz. To provjeravamo korištenjem funkcije “strstr()”.

Primjer 3:

Ovdje inicijaliziramo dvije string varijable: “myNewStr” i “mySubStr”. Zatim dodjeljujemo neke podatke niza i deklariramo dvije cjelobrojne varijable: “posOfStr” i “indexOfStr”.

Ispod toga koristimo petlju 'while()' i dodjeljujemo varijablu funkcije 'find()' varijabli 'indexOfStr' unutar ove petlje 'while()'. Ovoj funkciji 'find()' prosljeđujemo dvije varijable koje su 'mySubStr' i 'posOfStr'. Zatim postavljamo ključnu riječ “npos” koja provjerava da rezultat funkcije “find” nije jednak “npos”. Nakon toga koristimo “cout” koji povećava vrijednost indeksa za jedan i pohranjuje je u varijablu “posOfStr”.

Kod 3:

#include
#include

korištenje imenskog prostora std;
int glavni ( ) {
string myNewStr = 'ovdje nalazimo niz' ;
string mySubStr = 'niz' ;
int posOfStr = 0 ;
int indexOfStr;
dok ( ( indexOfStr = myNewStr.find ( mySubStr, posOfStr ) ) ! = niz::npos ) {
cout << ' Podniz je ' << ''' << mySubStr << ''' << ' Pronađeno na indeksnom broju : ' << indexOfStr << endl;
posOfStr = indexOfStr + 1 ;
}
povratak 0 ;
}

Izlaz:

Ovdje se pokazuje da dani niz sadrži podniz, a indeksni broj ovog niza je “19” što je također prikazano u ovom ishodu.

Primjer 4:

U ovaj kod uključujemo datoteku zaglavlja 'bits/stdc++.h'. Sada ne moramo uključiti druge datoteke zaglavlja jer sadrže sve potrebne biblioteke. Nakon pozivanja “main()”, inicijaliziramo “org_str” i “sub_str” varijable tipa podataka “string”. Zatim dodajemo uvjet 'if' u kojem koristimo funkciju 'strstr()'. Ova funkcija traži sadrži li zadani niz željeni podniz. Zatim dodajemo naredbu 'cout' za ispis da se podniz nalazi ovdje. Zatim, također stavljamo “else” dio koji se izvršava samo kada “if” uvjet nije zadovoljen ili podniz nije pronađen u nizu.

Nakon toga, deklariramo varijablu “sub_str2” i ovdje dodjeljujemo podatke niza. Zatim se umeće uvjet “if” i koristi se funkcija “strstr()”. Ova metoda pretražuje sadrži li isporučeni niz traženi podniz ili ne. Rezultat se zatim ovdje ispisuje pomoću naredbe 'cout'. Također uključujemo odjeljak 'else' koji se pokreće samo ako uvjet 'if' nije ispunjen ili ako se podniz ne može pronaći u nizu.

Kod 4:

#include
korištenje imenskog prostora std;
int glavni ( ) {
niz org_str = 'Programski jezik C++' ;
string sub_str = 'Program' ;
ako ( strstr ( org_str.c_str ( ) ,pod_str.c_str ( ) ) )
{
cout << 'Podstring ovdje je ' << ''' << pod_str << ''' << ' prisutan je u ' << org_str << endl;
}
drugo {
cout << 'Podniz nije prisutan u nizu.' << endl;
}
niz sub_str2 = 'Java' ;

ako ( strstr ( org_str.c_str ( ) ,sub_str2.c_str ( ) ) )
{
cout << 'Podstring ovdje je ' << ''' << pod_str2 << ''' << ' prisutan je u ' << org_str << endl;
}
drugo {
cout << 'Podniz nije prisutan u ovom nizu.' << endl;
}
povratak 0 ;
}

Izlaz:

Prvi rezultat funkcije 'strstr()' pokazuje da niz sadrži podniz, ali rezultat druge funkcije 'strstr()' pokazuje da podniz nije prisutan u nizu.

Zaključak

Koncept 'niz sadrži podniz' temeljito je ispitan u ovom vodiču. Istražili smo dvije metode koje pomažu u traženju sadrži li 'niz podniz'. Objasnili smo funkcije 'find()', kao i 'strstr()' koje C++ nudi ovdje u ovom vodiču za obavljanje ovog zadatka. Demonstriramo s jedinstvenim primjerima u kojima smo naučili kako koristiti ove funkcije za provjeru sadrži li 'niz podniz' u sebi.