C++ string sisaldab alamstringi

C String Sisaldab Alamstringi



C++-s on meil stringi andmetüüp ja saame stringidega erinevate ülesannete täitmiseks rakendada erinevaid funktsioone. Saame kontrollida, kas alamstring on algses stringis olemas. Võime ka öelda, et string sisaldab alamstringi. Selles juhendis õpime tehnikaid, mis aitavad meil leida „string sisaldab alamstringi”. Funktsioonid 'find()' ja 'strstr()' aitavad meil seda ülesannet C++ programmeerimisel täita.

Näide 1:

'iostream' ja 'string' on päisefailid, mis siia kaasatakse, kuna peame stringidega töötama ja andmeid ka sisestama või väljastama. Seega peame need päisefailid siia lisama. Pärast seda lisame märksõna 'using' abil nimeruumi std. Seega ei pea me seda 'std' kõigi funktsioonidega oma koodi eraldi panema. Seejärel käivitatakse siin funktsioon 'main()'.







Nüüd deklareerime stringi 'str_1' ja määrame sellele muutujale mõned stringiandmed. Seejärel initsialiseerime andmetüübi string teise muutuja nimega 'str_2' ja määrame sellele 'str_2' muutujale 'like'. Selle all kasutame tõeste või valede tulemuste andmiseks märksõna „bool”. Initsialiseerime 'stringHasStr' selle 'bool' andmetüübiga ja kasutame funktsiooni 'find()'. See otsib 'string sisaldab alamstringi'. 'str_1' on täielik string ja 'str_2' on alamstring.



Siia lisame ka märksõna 'npos', mida kasutatakse näitamaks, et selles stringis pole vasteid. See kontrollib, kas string sisaldab alamstringi, ja salvestab tulemuse sellesse 'stringHasStr' tõeväärtusmuutujasse.



Seejärel liigume edasi tingimuse 'if' poole ja edastame selle 'stringHasStr' muutuja sellele tingimusele 'if'. Kui selles tõeväärtusmuutujas salvestatud tulemus on 'tõene', kasutatakse selle tingimuse 'if' järgset väidet, kus kasutame 'cout' ja kuvame siin leiduva stringi. Kuid kui sellesse tõeväärtusmuutujasse salvestatakse 'vale' tulemus, kasutatakse teist osa ja kuvatakse, et stringi siit ei leitud.





Kood 1:

#include
#include

kasutades nimeruumi std;
int main ( )
{
string str_1 = 'Mulle meeldib C++ programmeerimiskeel' ;
string str_2 = 'meeldib' ;
bool stringHasStr = str_1.find ( str_2 ) ! = string::npos;
kui ( stringHasStr ) {
cout << 'Leiame siit stringi, mis on' << str_2 << endl;
}
muidu {
cout << 'Stringi ei leitud' << endl;
}
tagasi 0 ;
}



Väljund:

See antud väljund renderdab, et string sisaldab alamstringi ja kuvab selle siin. Kontrollime seda funktsiooni 'find()' abil.

Näide 2:

Lisame siia kolm päisefaili, mis on 'iostream', 'string' ja 'cstring'. Seejärel käivitage 'main()' pärast 'namespace std' asetamist. String 'new_str' on nüüd deklareeritud ja mõned stringiandmed on määratud.

Järgmisena initsialiseerime andmetüübi 'string' teise muutuja nimega 'sub_str' ja anname sellele väärtuse 'very'. Seejärel asetame 'const char*'. Seega on kursori väärtuse muutmine mälus teisele asukohale osutamiseks võimatu. Deklareerime siin muutuja 'FindingStr' kui 'const char*' osutit. Initsialiseerime selle meetodiga „strstr()” ja edastame mõlemad stringid koos funktsiooniga „c_str()”, mis teisendab stringi märgimassiiviks, mis lõpeb nullväärtusega. See 'strstr()' meetod aitab kontrollida, kas string 'new_str' sisaldab alamstringi 'sub_str' või mitte. Seejärel on meil 'if', kuhu lisame 'FindingStr'. Kui see leiab originaalist alamstringi, täidetakse lause 'if' järel, kus kasutame sõna 'cout'. Kui alamstringi ei leita, liigub see otse osa „muu“ poole ja prindib tulemuse, mis asetatakse osa „muu“ järele.

Kood 2:

#include
#include
#include

kasutades nimeruumi std;
int main ( )
{
string new_str = 'Väljas sajab vihma ja ilm on väga mõnus.' ;
string sub_str = 'väga' ;
konst char * FindingStr = strstr ( new_str.c_str ( ) , sub_str.c_str ( ) ) ;
kui ( FindingStr ) {
cout << 'Leiame stringi ja string on:' << alam_str << endl;
}
muidu {
cout << 'Stringi ei leitud' << endl;
}
tagasi 0 ;
}

Väljund:

Võime märgata, et antud string sisaldab alamstringi, kuna see kuvab lause, mille lisasime pärast 'if' ja prindib alamstringi siia. Kontrollime seda funktsiooni 'strstr ()' abil.

Näide 3:

Initsialiseerime siin kaks stringi muutujat: 'myNewStr' ja 'mySubStr'. Seejärel määrame mõned stringiandmed ja deklareerime kaks täisarvu muutujat: 'posOfStr' ja 'indexOfStr'.

Selle all kasutame tsüklit 'while()' ja määrame funktsiooni 'find()' muutuja 'indexOfStr' muutujale selle 'while()' sees. Sellele funktsioonile 'find()' edastame kaks muutujat, mis on 'mySubStr' ja 'posOfStr'. Seejärel asetame märksõna 'npos', mis kontrollib, et funktsiooni 'leida' tulemus ei oleks võrdne 'npos'-ga. Pärast seda kasutame 'cout', mis suurendab indeksi väärtust ühe võrra ja salvestab selle muutujas 'posOfStr'.

Kood 3:

#include
#include

kasutades nimeruumi std;
int main ( ) {
string myNewStr = 'me leiame siit stringi' ;
string mySubStr = 'string' ;
int posOfStr = 0 ;
int indexOfStr;
samal ajal ( ( indexOfStr = myNewStr.find ( mySubStr, posOfStr ) ) ! = string::npos ) {
cout << 'Alamstring on' << ''' << mySubStr << ''' << 'Leitud indeksi numbrilt:' << indexOfStr << endl;
posOfStr = indexOfStr + 1 ;
}
tagasi 0 ;
}

Väljund:

Siin näitab see, et antud string sisaldab alamstringi ja selle stringi indeksi number on '19', mis kuvatakse ka selles tulemuses.

Näide 4:

Sellesse koodi lisame päisefaili 'bits/stdc++.h'. Nüüd ei pea me lisama muid päisefaile, kuna need sisaldavad kõiki vajalikke teeke. Pärast 'main()' käivitamist initsialiseerime andmetüübi 'string' muutujad 'org_str' ja 'sub_str'. Seejärel lisame tingimuse 'if', milles kasutame funktsiooni 'strstr()'. See funktsioon otsib, kas antud string sisaldab soovitud alamstringi. Seejärel lisame lause 'cout', et printida, et alamstring on siit leitud. Seejärel paneme ka osa “else”, mis käivitatakse ainult siis, kui tingimus “if” pole täidetud või alamstringi stringist ei leitud.

Pärast seda deklareerime muutuja 'sub_str2' ja määrame siia stringi andmed. Seejärel lisatakse tingimus 'if' ja kasutatakse funktsiooni 'strstr()'. See meetod otsib, kas esitatud string sisaldab nõutud alamstringi või mitte. Seejärel prinditakse tulemus siia, kasutades käsku „cout”. Lisame ka jaotise „muu”, mida käivitatakse ainult siis, kui tingimus „kui” ei ole täidetud või kui alamstringi stringis ei leidu.

Kood 4:

#include
kasutades nimeruumi std;
int main ( ) {
string org_str = 'C++ programmeerimiskeel' ;
string sub_str = 'Programm' ;
kui ( strstr ( org_str.c_str ( ) ,sub_str.c_str ( ) ) )
{
cout << 'Alamstring siin on' << ''' << alam_str << ''' << ' on olemas ' << org_str << endl;
}
muidu {
cout << 'Alamstringi stringis ei ole.' << endl;
}
string sub_str2 = 'Java' ;

kui ( strstr ( org_str.c_str ( ) ,sub_str2.c_str ( ) ) )
{
cout << 'Alamstring siin on' << ''' << alam_str2 << ''' << ' on olemas ' << org_str << endl;
}
muidu {
cout << 'Selles stringis pole alamstringi.' << endl;
}
tagasi 0 ;
}

Väljund:

Funktsiooni esimese strstr() tulemus näitab, et string sisaldab alamstringi, kuid teise funktsiooni strstr() tulemus näitab, et alamstringi stringis ei ole.

Järeldus

Mõistet „string sisaldab alamstringi” käsitletakse selles juhendis põhjalikult. Uurisime kahte meetodit, mis aitavad otsida, kas string sisaldab alamstringi. Selgitasime selles juhendis nii 'find()' kui ka 'strstr()' funktsioone, mida C++ selles juhendis selle ülesande täitmiseks pakub. Näitame ainulaadsete näidetega, milles õppisime, kuidas neid funktsioone kasutada, et kontrollida, kas string sisaldab alamstringi.