C++ streng Indeholder en understreng

C Streng Indeholder En Understreng



I C++ har vi strengdatatypen og kan anvende de forskellige funktioner til at udføre de forskellige opgaver med strengene. Vi kan kontrollere, om understrengen er til stede inde i den originale streng. Vi kan også sige, at 'strengen indeholder understrengen'. I denne guide vil vi lære de teknikker, der hjælper os med at finde 'strengen indeholder understrengen'. Funktionerne 'find()' og 'strstr()' hjælper os med at udføre denne opgave i C++ programmering.

Eksempel 1:

'iostream' og 'streng' er header-filerne, der er inkluderet her, da vi skal arbejde med strengene og også skal indtaste eller udlæse dataene. Så vi skal inkludere disse header-filer her. Herefter inkluderer vi 'navnerummet std' ved hjælp af nøgleordet 'bruger'. Så vi behøver ikke at sætte denne 'std' med alle funktioner separat i vores kode. Derefter aktiveres 'main()'-funktionen her.







Nu erklærer vi 'str_1' strengen og tildeler nogle strengdata til denne variabel. Derefter initialiserer vi også en anden variabel ved navn 'str_2' af 'streng'-datatypen og tildeler 'like' til denne 'str_2'-variabel. Herunder bruger vi søgeordet 'bool' til at give sande eller falske resultater. Vi initialiserer 'stringHasStr' med denne 'bool' datatype og bruger funktionen 'find()'. Dette søger efter 'strengen indeholder understrengen'. 'str_1' er den komplette streng og 'str_2' er understrengen.



Her tilføjer vi også søgeordet 'npos', som bruges til at vise, at der ikke er nogen match i denne streng. Den kontrollerer, om strengen indeholder en understreng og gemmer resultatet i denne 'stringHasStr' bool-variabel.



Derefter bevæger vi os frem mod 'hvis'-betingelsen og sender denne 'stringHasStr'-variabel til denne 'hvis'-betingelse. Hvis resultatet, der er gemt i denne bool-variabel, er 'true', anvendes sætningen efter denne 'if'-betingelse, hvor vi bruger 'cout' og viser strengen, der findes her. Men hvis det 'falske' resultat er gemt i denne bool-variabel, bruges den anden del og viser, at strengen ikke findes her.





Kode 1:

#include
#inkluder

bruger navneområde std;
int main ( )
{
streng str_1 = 'Jeg kan godt lide C++ programmeringssprog' ;
streng str_2 = 'synes godt om' ;
bool stringHasStr = str_1.find ( str_2 ) ! = streng::npos;
hvis ( stringHasStr ) {
cout << 'Vi finder strengen her, som er' << str_2 << endl;
}
andet {
cout << 'Strengen ikke fundet' << endl;
}
Vend tilbage 0 ;
}



Produktion:

Dette givne output gør, at strengen indeholder understrengen og viser den her. Vi tjekker dette ved at bruge funktionen 'find()'.

Eksempel 2:

Vi inkluderer tre header-filer her, der er 'iostream', 'string' og 'cstring'. Kald derefter “main()” efter at have placeret “namespace std”. 'new_str'-strengen er nu erklæret, og nogle strengdata er tildelt.

Dernæst initialiserer vi en anden variabel af 'streng'-datatypen kaldet 'sub_str' og giver den 'meget' værdien. Derefter placerer vi 'const char*'. Så det er umuligt at ændre markørens værdi til at pege på den anden placering i hukommelsen. Vi erklærer variablen 'FindingStr' som denne 'const char*' pointer her. Vi initialiserer den med 'strstr()'-metoden og sender begge strenge sammen med 'c_str()'-funktionen, der transformerer en streng til et tegnarray, der ender med en nulværdi. Denne 'strstr()'-metode hjælper med at kontrollere, om 'new_str'-strengen indeholder 'sub_str'-understrengen eller ej. Så har vi 'hvis', hvor vi tilføjer 'FindingStr'. Hvis den finder understrengen i originalen, udføres sætningen efter 'if', hvor vi bruger 'cout'. Hvis understrengen ikke findes, bevæger den sig direkte mod 'else'-delen og udskriver resultatet, som er placeret efter 'else'-delen.

Kode 2:

#include
#inkluder
#include

bruger navneområde std;
int main ( )
{
streng new_str = 'Det regner udenfor, og vejret er meget behageligt.' ;
streng sub_str = 'meget' ;
konst char * FindingStr = strstr ( new_str.c_str ( ) , sub_str.c_str ( ) ) ;
hvis ( FindingStr ) {
cout << 'Vi finder strengen, og strengen er:' << sub_str << endl;
}
andet {
cout << 'Streng ikke fundet' << endl;
}
Vend tilbage 0 ;
}

Produktion:

Vi bemærker måske, at den givne streng indeholder understrengen, da den viser sætningen, som vi tilføjede efter 'if' og udskriver understrengen her. Vi tjekker dette ved at bruge funktionen 'strstr()'.

Eksempel 3:

Vi initialiserer to strengvariabler her: 'myNewStr' og 'mySubStr'. Derefter tildeler vi nogle strengdata og erklærer to heltalsvariabler: 'posOfStr' og 'indexOfStr'.

Herunder bruger vi 'while()'-løkken og tildeler 'find()'-funktionsvariablen til 'indexOfStr'-variablen inde i denne 'while()'-løkke. Vi sender to variable til denne 'find()'-funktion, som er 'mySubStr' og 'posOfStr'. Derefter placerer vi nøgleordet 'npos', som kontrollerer, at resultatet af 'find'-funktionen ikke er lig med 'npos'. Efter dette bruger vi 'cout', som øger indeksværdien med én og gemmer den i 'posOfStr'-variablen.

Kode 3:

#include
#inkluder

bruger navneområde std;
int main ( ) {
streng myNewStr = 'vi finder snoren her' ;
streng mySubStr = 'snor' ;
int posOfStr = 0 ;
int indexOfStr;
mens ( ( indexOfStr = myNewStr.find ( mySubStr, posOfStr ) ) ! = streng::npos ) {
cout << 'Understrengen er' << ''' << mySubStr << ''' << ' Fundet ved indeksnummer : ' << indexOfStr << endl;
posOfStr = indexOfStr + 1 ;
}
Vend tilbage 0 ;
}

Produktion:

Her viser den, at den givne streng indeholder understrengen, og indeksnummeret for denne streng er '19', hvilket også vises i dette resultat.

Eksempel 4:

I denne kode inkluderer vi 'bits/stdc++.h' header-filen. Nu behøver vi ikke at inkludere andre header-filer, da de indeholder alle de nødvendige biblioteker. Efter at have påkaldt 'main()', initialiserer vi variablerne 'org_str' og 'sub_str' af datatypen 'streng'. Derefter tilføjer vi 'hvis'-tilstanden, hvor vi bruger 'strstr()'-funktionen. Denne funktion søger for at se, om den givne streng indeholder den ønskede understreng. Derefter tilføjer vi en 'cout'-erklæring for at udskrive, at understrengen findes her. Derefter sætter vi også 'else'-delen, som kun udføres, når 'hvis'-betingelsen ikke er opfyldt, eller understrengen ikke findes i strengen.

Herefter erklærer vi variablen 'sub_str2' og tildeler en strengdata her. 'Hvis'-betingelsen indsættes derefter, og 'strstr()'-funktionen bruges. Denne metode søger, om den leverede streng indeholder den anmodede understreng. Resultatet udskrives derefter her ved hjælp af kommandoen 'cout'. Vi inkluderer også en 'else'-sektion, der kun køres, hvis betingelsen 'hvis' ikke er opfyldt, eller hvis understrengen ikke kan findes i strengen.

Kode 4:

#include
bruger navneområde std;
int main ( ) {
streng org_str = 'C++ programmeringssprog' ;
streng sub_str = 'Program' ;
hvis ( strstr ( org_str.c_str ( ) ,sub_str.c_str ( ) ) )
{
cout << 'Understrengen her er' << ''' << sub_str << ''' << 'er til stede i' << org_str << endl;
}
andet {
cout << 'Understreng er ikke til stede i strengen.' << endl;
}
streng sub_str2 = 'Java' ;

hvis ( strstr ( org_str.c_str ( ) ,sub_str2.c_str ( ) ) )
{
cout << 'Understrengen her er' << ''' << sub_str2 << ''' << 'er til stede i' << org_str << endl;
}
andet {
cout << 'Understreng er ikke til stede i denne streng.' << endl;
}
Vend tilbage 0 ;
}

Produktion:

Den første 'strstr()'-funktions resultat viser, at strengen indeholder understrengen, men den anden 'strstr()'-funktions resultat viser, at understrengen ikke er til stede i strengen.

Konklusion

Begrebet 'streng indeholder understrengen' er grundigt undersøgt i denne vejledning. Vi undersøgte to metoder, der hjælper med at søge, om 'strengen indeholder understrengen'. Vi forklarede 'find()' samt 'strstr()'-funktionerne, som C++ giver her i denne vejledning til at udføre denne opgave. Vi demonstrerer med unikke eksempler, hvor vi lærte, hvordan man bruger disse funktioner til at kontrollere, om 'strengen indeholder understrengen' i den.