Șirul C++ Conține un subșir

Sirul C Contine Un Subsir



În C++, avem tipul de date șir și putem aplica diferite funcții pentru a face diferitele sarcini cu șirurile. Putem verifica dacă subșirul este prezent în șirul original. De asemenea, putem spune că „șirul conține subșirul”. În acest ghid, vom învăța tehnicile care ne ajută să găsim „șirul conține subșirul”. Funcțiile „find()” și „strstr()” ne ajută să facem această sarcină în programarea C++.

Exemplul 1:

„Iostream” și „șir” sunt fișierele antet care sunt incluse aici, deoarece trebuie să lucrăm cu șirurile și, de asemenea, trebuie să introducem sau să ieșim datele. Deci, trebuie să includem aceste fișiere de antet aici. După aceasta, includem „namespace std” cu ajutorul cuvântului cheie „using”. Deci, nu trebuie să punem acest „std” cu toate funcțiile separat în codul nostru. Apoi, funcția „main()” este invocată aici.







Acum, declarăm șirul „str_1” și atribuim câteva date șir acestei variabile. Apoi, inițializam și o altă variabilă numită „str_2” de tipul de date „șir” și atribuim „like” acestei variabile „str_2”. Sub aceasta, folosim cuvântul cheie „bool” pentru a oferi rezultate adevărate sau false. Inițializam „stringHasStr” cu acest tip de date „bool” și utilizăm funcția „find()”. Aceasta caută „șirul conține subșirul”. „Str_1” este șirul complet și „str_2” este subșirul.



Aici, adăugăm, de asemenea, cuvântul cheie „npos” care este utilizat pentru a arăta că nu există potriviri în acest șir. Verifică dacă șirul conține un subșir și stochează rezultatul în această variabilă bool „stringHasStr”.



Apoi, mergem înainte spre condiția „dacă” și trecem această variabilă „stringHasStr” la această condiție „dacă”. Dacă rezultatul care este stocat în această variabilă bool este „adevărat”, declarația de după această condiție „dacă” este folosită în cazul în care utilizăm „cout” și afișăm șirul care se găsește aici. Dar dacă rezultatul „fals” este stocat în această variabilă bool, cealaltă parte este folosită și arată că șirul nu este găsit aici.





Cod 1:

#include
#include <șir>

folosind namespace std;
int principal ( )
{
șir str_1 = „Îmi place limbajul de programare C++” ;
șir str_2 = 'ca' ;
bool stringHasStr = str_1.find ( str_2 ) ! = șir::npos;
dacă ( stringHasStr ) {
cout << „Găsim aici șirul care este” << str_2 << endl;
}
altfel {
cout << „Sirul nu a fost găsit” << endl;
}
întoarcere 0 ;
}



Ieșire:

Această ieșire dată arată că șirul conține subșirul și îl afișează aici. Verificăm acest lucru utilizând funcția „find()”.

Exemplul 2:

Includem aici trei fișiere de antet care sunt „iostream”, „string” și „cstring”. Apoi, invocați „main()” după ce ați plasat „namespace std”. Șirul „new_str” este acum declarat și unele date șir sunt alocate.

Apoi, inițializam o a doua variabilă de tipul de date „șir” numită „sub_str” și îi dăm valoarea „foarte”. Apoi, plasăm „const char*”. Deci, modificarea valorii indicatorului pentru a indica cealaltă locație din memorie este imposibilă. Declaram variabila „FindingStr” ca acest indicator „const char*” aici. O inițializam cu metoda „strstr()” și trecem ambele șiruri împreună cu funcția „c_str()” care transformă un șir într-o matrice de caractere care se termină cu o valoare nulă. Această metodă „strstr()” ajută la verificarea dacă șirul „new_str” conține subșirul „sub_str” sau nu. Apoi, avem „dacă” în care adăugăm „FindingStr”. Dacă găsește subșirul în original, instrucțiunea de după „dacă” este executată unde folosim „cout”. Dacă subșirul nu este găsit, acesta se deplasează direct către partea „altfel” și tipărește rezultatul care este plasat după partea „altfel”.

Cod 2:

#include
#include <șir>
#include

folosind namespace std;
int principal ( )
{
șir new_str = „Afară plouă și vremea este foarte plăcută”. ;
șir sub_str = 'foarte' ;
const char * FindingStr = strstr ( new_str.c_str ( ) , sub_str.c_str ( ) ) ;
dacă ( FindingStr ) {
cout << 'Găsim șirul și șirul este: ' << sub_str << endl;
}
altfel {
cout << „Șirul nu a fost găsit” << endl;
}
întoarcere 0 ;
}

Ieșire:

Am putea observa că șirul dat conține subșirul, deoarece afișează declarația pe care am adăugat-o după „dacă” și tipărește subșirul aici. Verificăm acest lucru utilizând funcția „strstr()”.

Exemplul 3:

Inițializam două variabile șir aici: „myNewStr” și „mySubStr”. Apoi, atribuim niște șir de date și declarăm două variabile întregi: „posOfStr” și „indexOfStr”.

Sub aceasta, folosim bucla „while()” și atribuim variabilei funcției „find()” variabilei „indexOfStr” în interiorul acestei bucle „while()”. Trecem două variabile acestei funcții „find()” care sunt „mySubStr” și „posOfStr”. Apoi, plasăm cuvântul cheie „npos” care verifică dacă rezultatul funcției „find” nu este egal cu „npos”. După aceasta, folosim „cout” care crește valoarea indexului cu unul și o stochează în variabila „posOfStr”.

Cod 3:

#include
#include <șir>

folosind namespace std;
int principal ( ) {
șir myNewStr = 'Găsim șirul aici' ;
șir mySubStr = 'şir' ;
int posOfStr = 0 ;
int indexOfStr;
in timp ce ( ( indexOfStr = myNewStr.find ( mySubStr, posOfStr ) ) ! = șir::npos ) {
cout << 'Subșirul este' << ''' << mySubStr << ''' << ' Găsit la numărul de index : ' << indexOfStr << endl;
posOfStr = indexOfStr + 1 ;
}
întoarcere 0 ;
}

Ieșire:

Aici, arată că șirul dat conține subșirul și numărul de index al acestui șir este „19”, care este, de asemenea, afișat în acest rezultat.

Exemplul 4:

În acest cod, includem fișierul antet „bits/stdc++.h”. Acum, nu trebuie să includem alte fișiere antet, deoarece acestea conțin toate bibliotecile necesare. După invocarea „main()”, inițializam variabilele „org_str” și „sub_str” ale tipului de date „șir”. Apoi, adăugăm condiția „dacă” în care folosim funcția „strstr()”. Această funcție caută pentru a vedea dacă șirul dat conține subșirul dorit. Apoi, adăugăm o declarație „cout” pentru a imprima că subșirul se găsește aici. Apoi, punem și partea „else” care se execută numai atunci când condiția „dacă” nu este îndeplinită sau subșirul nu este găsit în șir.

După aceasta, declarăm variabila „sub_str2” și atribuim un șir de date aici. Este apoi inserată condiția „dacă” și este utilizată funcția „strstr()”. Această metodă caută dacă șirul furnizat conține sau nu subșirul solicitat. Rezultatul este apoi tipărit aici folosind comanda „cout”. Includem, de asemenea, o secțiune „else” care este rulată numai dacă condiția „dacă” nu este îndeplinită sau dacă subșirul nu poate fi localizat în șir.

Cod 4:

#include
folosind namespace std;
int principal ( ) {
șir org_str = „Limbajul de programare C++” ;
șir sub_str = 'Program' ;
dacă ( str ( org_str.c_str ( ) ,sub_str.c_str ( ) ) )
{
cout << 'Subșirul aici este' << ''' << sub_str << ''' << 'este prezent in' << org_str << endl;
}
altfel {
cout << „Subșirul nu este prezent în șir”. << endl;
}
șir sub_str2 = 'Java' ;

dacă ( str ( org_str.c_str ( ) ,sub_str2.c_str ( ) ) )
{
cout << 'Subșirul aici este' << ''' << sub_str2 << ''' << 'este prezent in' << org_str << endl;
}
altfel {
cout << „Subșirul nu este prezent în acest șir.” << endl;
}
întoarcere 0 ;
}

Ieșire:

Rezultatul primei funcție „strstr()” arată că șirul conține subșirul, dar rezultatul celei de-a doua funcție „strstr()” arată că subșirul nu este prezent în șir.

Concluzie

Conceptul de „șir conține subșirul” este examinat în detaliu în acest ghid. Am explorat două metode care ajută la căutarea dacă „șirul conține subșirul”. Am explicat funcțiile „find()”, precum și „strstr()” pe care C++ le oferă aici în acest ghid pentru a realiza această sarcină. Demonstrăm cu exemple unice în care am învățat cum să folosim aceste funcții pentru a verifica dacă „șirul conține subșirul” în el.