C++ String Bevat een subtekenreeks

C String Bevat Een Subtekenreeks



In C++ hebben we het gegevenstype string en kunnen we de verschillende functies toepassen om de verschillende taken met de strings uit te voeren. We kunnen controleren of de substring aanwezig is in de originele string. We kunnen ook zeggen dat de “string de substring bevat”. In deze gids zullen we de technieken leren die ons helpen bij het vinden van de “string bevat de substring”. De functies “find()” en “strstr()” helpen ons bij het uitvoeren van deze taak in C++-programmeren.

Voorbeeld 1:

De “iostream” en “string” zijn de headerbestanden die hier zijn opgenomen, omdat we met de strings moeten werken en ook de gegevens moeten invoeren of uitvoeren. We moeten deze headerbestanden hier dus opnemen. Hierna nemen we de “namespace std” op met behulp van het trefwoord “using”. We hoeven deze “std” dus niet met alle functies afzonderlijk in onze code te plaatsen. Vervolgens wordt hier de functie “main()” aangeroepen.







Nu declareren we de string “str_1” en wijzen enkele stringgegevens toe aan deze variabele. Vervolgens initialiseren we ook een andere variabele met de naam “str_2” van het gegevenstype “string” en wijzen we “like” toe aan deze “str_2” variabele. Hieronder gebruiken we het trefwoord 'bool' om ware of valse resultaten te geven. We initialiseren de “stringHasStr” met dit “bool” datatype en gebruiken de “find()” functie. Hiermee wordt gezocht in de “string bevat de substring”. De “str_1” is de volledige string en “str_2” is de substring.



Hier voegen we ook het trefwoord ‘npos’ toe, dat wordt gebruikt om aan te geven dat er geen overeenkomsten in deze reeks voorkomen. Het controleert of de string een substring bevat en slaat het resultaat op in deze boolvariabele “stringHasStr”.



Vervolgens gaan we verder naar de “if”-voorwaarde en geven deze “stringHasStr”-variabele door aan deze “if”-voorwaarde. Als het resultaat dat in deze bool-variabele is opgeslagen “true” is, wordt de verklaring na deze “if”-voorwaarde gebruikt, waarbij we de “cout” gebruiken en de string weergeven die hier wordt gevonden. Maar als het “valse” resultaat in deze bool-variabele wordt opgeslagen, wordt het andere deel gebruikt en wordt weergegeven dat de string hier niet wordt gevonden.





Code1:

#include
#include

namespace std; gebruiken;
int. hoofd ( )
{
tekenreeks str_1 = 'Ik hou van de programmeertaal C++' ;
tekenreeks str_2 = 'leuk vinden' ;
bool stringHasStr = str_1.find ( str_2 ) ! = tekenreeks::npos;
als ( stringHasStr ) {
uit << 'We vinden hier de string die is' << str_2 << eind;
}
anders {
uit << 'De tekenreeks is niet gevonden' << eind;
}
opbrengst 0 ;
}



Uitgang:

Deze gegeven uitvoer geeft aan dat de string de substring bevat en geeft deze hier weer. We controleren dit door gebruik te maken van de functie “find()”.

Voorbeeld 2:

We nemen hier drie headerbestanden op die 'iostream', 'string' en 'cstring' zijn. Roep vervolgens de “main()” aan na het plaatsen van de “namespace std”. De string “new_str” is nu gedeclareerd en er zijn enkele stringgegevens toegewezen.

Vervolgens initialiseren we een tweede variabele van het gegevenstype “string” genaamd “sub_str” en geven deze de waarde “very”. Vervolgens plaatsen we de “const char*”. Het is dus onmogelijk om de waarde van de aanwijzer te wijzigen zodat deze naar een andere locatie in het geheugen wijst. We declareren de variabele “FindingStr” hier als deze “const char*”-aanwijzer. We initialiseren het met de “strstr()”-methode en geven beide strings door samen met de “c_str()”-functie die een string omzet in een karakterarray die eindigt met een nulwaarde. Deze “strstr()”-methode helpt bij het controleren of de string “new_str” de substring “sub_str” bevat of niet. Dan hebben we “if” waarin we de “FindingStr” toevoegen. Als het de subtekenreeks in het origineel vindt, wordt de verklaring na “if” uitgevoerd, waarbij we de “cout” gebruiken. Als de substring niet wordt gevonden, beweegt deze direct naar het “else”-gedeelte en drukt het resultaat af dat na het “else”-gedeelte wordt geplaatst.

Code2:

#include
#include
#include

namespace std; gebruiken;
int. hoofd ( )
{
tekenreeks nieuwe_str = 'Buiten regent het en het weer is heel aangenaam.' ;
tekenreeks sub_str = 'erg' ;
const teken * FindingStr = strstr ( nieuwe_str.c_str ( ) , sub_str.c_str ( ) ) ;
als ( VindStr ) {
uit << 'We vinden de String en de string is: ' << sub_str << eind;
}
anders {
uit << 'String niet gevonden' << eind;
}
opbrengst 0 ;
}

Uitgang:

Het valt ons misschien op dat de gegeven string de substring bevat, omdat deze de verklaring weergeeft die we na “if” hebben toegevoegd en de substring hier wordt afgedrukt. We controleren dit door gebruik te maken van de functie “strstr()”.

Voorbeeld 3:

We initialiseren hier twee stringvariabelen: “myNewStr” en “mySubStr”. Vervolgens wijzen we enkele stringgegevens toe en declareren we twee integer-variabelen: “posOfStr” en “indexOfStr”.

Hieronder gebruiken we de lus “while()” en wijzen we de functievariabele “find()” toe aan de variabele “indexOfStr” binnen deze lus “while()”. We geven twee variabelen door aan deze “find()”-functie, namelijk “mySubStr” en “posOfStr”. Vervolgens plaatsen we het trefwoord “npos” dat controleert of het resultaat van de functie “find” niet gelijk is aan “npos”. Hierna gebruiken we de “cout” die de indexwaarde met één verhoogt en deze opslaat in de “posOfStr” -variabele.

Code 3:

#include
#include

namespace std; gebruiken;
int. hoofd ( ) {
string mijnNieuwStr = 'we vinden de string hier' ;
string mijnSubStr = 'snaar' ;
int posOfStr = 0 ;
int indexOfStr;
terwijl ( ( indexOfStr = mijnNieuwStr.find ( mijnSubStr, posOfStr ) ) ! = tekenreeks::npos ) {
uit << ' De subtekenreeks is ' << ''' << mijnSubStr << ''' << ' Gevonden op indexnummer : ' << indexVanStr << eind;
posOfStr = indexOfStr + 1 ;
}
opbrengst 0 ;
}

Uitgang:

Hier laat het zien dat de gegeven string de substring bevat en dat het indexnummer van deze string “19” is, wat ook in deze uitkomst wordt weergegeven.

Voorbeeld 4:

In deze code nemen we het headerbestand “bits/stdc++.h” op. Nu hoeven we geen andere headerbestanden op te nemen, omdat deze alle vereiste bibliotheken bevatten. Nadat we de “main()” hebben aangeroepen, initialiseren we de variabelen “org_str” en “sub_str” van het gegevenstype “string”. Vervolgens voegen we de “if”-voorwaarde toe waarin we de functie “strstr()” gebruiken. Deze functie zoekt of de gegeven string de gewenste substring bevat. Vervolgens voegen we een “cout”-instructie toe om aan te geven dat de subtekenreeks hier wordt gevonden. Vervolgens plaatsen we ook het “else”-gedeelte dat alleen wordt uitgevoerd als niet aan de “if”-voorwaarde is voldaan of als de substring niet in de string wordt gevonden.

Hierna declareren we de variabele “sub_str2” en wijzen hier stringgegevens toe. Vervolgens wordt de voorwaarde “if” ingevoegd en wordt de functie “strstr()” gebruikt. Deze methode zoekt of de opgegeven string de gevraagde substring bevat. Het resultaat wordt hier vervolgens afgedrukt met behulp van de opdracht 'cout'. We nemen ook een 'else'-sectie op die alleen wordt uitgevoerd als niet aan de 'if'-voorwaarde is voldaan of als de subtekenreeks niet in de tekenreeks kan worden gevonden.

Code 4:

#include
namespace std; gebruiken;
int. hoofd ( ) {
tekenreeks org_str = 'C++ programmeertaal' ;
tekenreeks sub_str = 'Programma' ;
als ( strstr ( org_str.c_str ( ) ,sub_str.c_str ( ) ) )
{
uit << 'De subtekenreeks hier is' << ''' << sub_str << ''' << 'is aanwezig in' << org_str << eind;
}
anders {
uit << 'Subtekenreeks is niet aanwezig in de tekenreeks.' << eind;
}
tekenreeks sub_str2 = 'Java' ;

als ( strstr ( org_str.c_str ( ) ,sub_str2.c_str ( ) ) )
{
uit << 'De subtekenreeks hier is' << ''' << sub_str2 << ''' << 'is aanwezig in' << org_str << eind;
}
anders {
uit << 'Subtekenreeks is niet aanwezig in deze tekenreeks.' << eind;
}
opbrengst 0 ;
}

Uitgang:

Het resultaat van de eerste “strstr()”-functie laat zien dat de string de substring bevat, maar het resultaat van de tweede “strstr()”-functie laat zien dat de substring niet aanwezig is in de string.

Conclusie

Het concept van “tekenreeks bevat de subtekenreeks” wordt in deze handleiding grondig onderzocht. We hebben twee methoden onderzocht die helpen bij het zoeken of de “string de substring bevat”. We hebben de functies “find()” en “strstr()” die C++ biedt, hier in deze handleiding uitgelegd voor het uitvoeren van deze taak. We demonstreren met unieke voorbeelden waarin we hebben geleerd hoe we deze functies kunnen gebruiken om te controleren of de “string de substring bevat” erin.