C++ eilutėje yra poeilutė

C Eiluteje Yra Poeilute



C++ kalboje turime eilutės duomenų tipą ir galime pritaikyti įvairias funkcijas, kad atliktume įvairias užduotis su eilutėmis. Galime patikrinti, ar poeilutė yra pradinėje eilutėje. Taip pat galime pasakyti, kad „eilutė apima poeilelę“. Šiame vadove išmoksime metodus, kurie padeda mums rasti „eilutė, kurioje yra poeilutė“. Funkcijos „find ()“ ir „strstr ()“ padeda mums atlikti šią užduotį programuojant C++.

1 pavyzdys:

„iostream“ ir „string“ yra antraštės failai, kurie yra čia, nes turime dirbti su eilutėmis ir taip pat turime įvesti arba išvesti duomenis. Taigi, mes turime įtraukti šiuos antraštės failus čia. Po to mes įtraukiame „vardų erdvę std“ naudodami raktinį žodį „using“. Taigi, mums nereikia šio „std“ su visomis funkcijomis atskirai įtraukti į mūsų kodą. Tada čia iškviečiama funkcija „main()“.







Dabar paskelbiame eilutę „str_1“ ir šiam kintamajam priskiriame kai kuriuos eilutės duomenis. Tada taip pat inicijuojame kitą „string“ duomenų tipo kintamąjį, pavadintą „str_2“, ir šiam „str_2“ kintamajam priskiriame „like“. Žemiau mes naudojame raktinį žodį „bool“, kad pateiktume teisingus arba klaidingus rezultatus. Mes inicijuojame „stringHasStr“ naudodami šį „bool“ duomenų tipą ir naudojame funkciją „find()“. Taip ieškoma „eilutė, kurioje yra poeilutė“. „str_1“ yra visa eilutė, o „str_2“ yra poeilutė.



Čia taip pat pridedame raktinį žodį „npos“, kuris naudojamas parodyti, kad šioje eilutėje nėra atitikmenų. Jis patikrina, ar eilutėje yra poeilutė, ir išsaugo rezultatą šiame „stringHasStr“ kintamajame.



Tada pereiname prie sąlygos „if“ ir perduodame šį „stringHasStr“ kintamąjį šiai sąlygai „if“. Jei rezultatas, saugomas šiame loginiame kintamajame, yra „true“, naudojamas teiginys po šios sąlygos „jei“, kai naudojame „cout“ ir rodome čia rastą eilutę. Bet jei „klaidingas“ rezultatas yra saugomas šiame bool kintamajame, naudojama kita dalis ir rodoma, kad eilutė čia nerasta.





1 kodas:

#include
#include

naudojant vardų erdvę std;
tarp pagrindinis ( )
{
eilutė str_1 = 'Man patinka C++ programavimo kalba' ;
eilutė str_2 = 'Kaip' ;
bool stringHasStr = str_1.rasti ( str_2 ) ! = eilutė::npos;
jeigu ( stringHasStr ) {
cout << „Čia randame eilutę, kuri yra“ << str_2 << endl;
}
Kitas {
cout << 'Styga nerasta' << endl;
}
grąžinti 0 ;
}



Išvestis:

Ši išvestis rodo, kad eilutėje yra poeilutė, ir rodoma čia. Tai patikriname naudodami funkciją „rasti ()“.

2 pavyzdys:

Čia įtraukiame tris antraštės failus, kurie yra „iostream“, „string“ ir „cstring“. Tada įdėję vardų sritį std, iškvieskite „main()“. Dabar paskelbta eilutė „new_str“ ir priskirti kai kurie eilutės duomenys.

Tada inicijuojame antrąjį „stygos“ duomenų tipo kintamąjį, vadinamą „sub_str“, ir suteikiame jam „very“ reikšmę. Tada dedame „const char*“. Taigi, pakeisti žymeklio reikšmę, kad ji nukreiptų į kitą atminties vietą, neįmanoma. Mes deklaruojame „FindingStr“ kintamąjį kaip „const char*“ žymeklį čia. Mes inicijuojame jį naudodami „strstr()“ metodą ir perduodame abi eilutes kartu su funkcija „c_str()“, kuri paverčia eilutę į simbolių masyvą, kuris baigiasi nuline verte. Šis „strstr()“ metodas padeda patikrinti, ar eilutėje „new_str“ yra poeilutė „sub_str“, ar ne. Tada turime „if“, kuriame pridedame „FindingStr“. Jei ji randa poeilelę originale, po „if“ esantis sakinys vykdomas ten, kur naudojame „cout“. Jei poeilutė nerandama, ji tiesiogiai juda link dalies „else“ ir išspausdina rezultatą, kuris dedamas po „else“ dalies.

2 kodas:

#include
#include
#include

naudojant vardų erdvę std;
tarp pagrindinis ( )
{
eilutė new_str = „Lauke lyja, o oras labai malonus. ;
eilutė sub_str = 'labai' ;
const char * FindingStr = strstr ( new_str.c_str ( ) , sub_str.c_str ( ) ) ;
jeigu ( FindingStr ) {
cout << „Mes randame eilutę ir eilutė yra: << sub_str << endl;
}
Kitas {
cout << 'Eilutė nerasta' << endl;
}
grąžinti 0 ;
}

Išvestis:

Galime pastebėti, kad nurodytoje eilutėje yra poeilutė, nes joje rodomas teiginys, kurį įtraukėme po „if“, ir čia atspausdinama poeilutė. Tai patikriname naudodami funkciją „strstr ()“.

3 pavyzdys:

Čia inicijuojame du eilučių kintamuosius: „myNewStr“ ir „mySubStr“. Tada priskiriame kai kuriuos eilutės duomenis ir deklaruojame du sveikuosius kintamuosius: „posOfStr“ ir „indexOfStr“.

Žemiau mes naudojame kilpą „while()“ ir funkcijos „find()“ kintamąjį priskiriame „indexOfStr“ kintamajam šios „while()“ ciklo viduje. Šiai funkcijai „find()“ perduodame du kintamuosius, kurie yra „mySubStr“ ir „posOfStr“. Tada įdedame raktinį žodį „npos“, kuris patikrina, ar funkcijos „rasti“ rezultatas nėra lygus „npos“. Po to mes naudojame „cout“, kuris padidina indekso reikšmę vienu ir išsaugo ją „posOfStr“ kintamajame.

3 kodas:

#include
#include

naudojant vardų sritį std;
tarp pagrindinis ( ) {
string myNewStr = „čia randame eilutę“ ;
eilutė mySubStr = 'styga' ;
int posOfStr = 0 ;
int indexOfStr;
kol ( ( indexOfStr = myNewStr.find ( mySubStr, posOfStr ) ) ! = string::npos ) {
cout << 'Poeilutė yra' << ''' << mySubStr << ''' << 'Rasta indekso numeriu:' << indexOfStr << endl;
posOfStr = indexOfStr + 1 ;
}
grąžinti 0 ;
}

Išvestis:

Čia rodoma, kad nurodytoje eilutėje yra poeilutė, o šios eilutės indekso numeris yra „19“, kuris taip pat rodomas šiame rezultate.

4 pavyzdys:

Į šį kodą įtraukiame antraštės failą „bits/stdc++.h“. Dabar mums nereikia įtraukti kitų antraščių failų, nes juose yra visos reikalingos bibliotekos. Iškvietę „main()“, inicijuojame „string“ duomenų tipo „org_str“ ir „sub_str“ kintamuosius. Tada pridedame sąlygą „if“, kurioje naudojame funkciją „strstr()“. Ši funkcija ieško, ar duotoje eilutėje yra norima poeilutė. Tada pridedame teiginį „cout“, kad atspausdintume, kad poeilutė yra čia. Tada taip pat įdedame dalį „else“, kuri vykdoma tik tada, kai netenkinama sąlyga „if“ arba eilutėje nerasta poeilutė.

Po to deklaruojame „sub_str2“ kintamąjį ir čia priskiriame eilutės duomenis. Tada įterpiama sąlyga „if“ ir naudojama funkcija „strstr()“. Šis metodas ieško, ar pateiktoje eilutėje yra prašoma poeilutė. Rezultatas atspausdinamas čia naudojant komandą „cout“. Taip pat įtraukiame skiltį „else“, kuri vykdoma tik tuo atveju, jei neįvykdoma sąlyga „jei“ arba jei eilutėje negali būti poeilutės.

4 kodas:

#include
naudojant vardų sritį std;
tarp pagrindinis ( ) {
eilutė org_str = 'C++ programavimo kalba' ;
eilutė sub_str = 'Programa' ;
jeigu ( strstr ( org_str.c_str ( ) ,sub_str.c_str ( ) ) )
{
cout << 'Poeilutė čia yra' << ''' << sub_str << ''' << 'yra' << org_str << endl;
}
Kitas {
cout << 'Elutinėje nėra poeilutės.' << endl;
}
eilutė sub_str2 = 'Java' ;

jeigu ( strstr ( org_str.c_str ( ) ,sub_str2.c_str ( ) ) )
{
cout << 'Poeilutė čia yra' << ''' << sub_str2 << ''' << 'yra' << org_str << endl;
}
Kitas {
cout << 'Šioje eilutėje nėra poeilutės.' << endl;
}
grąžinti 0 ;
}

Išvestis:

Pirmosios funkcijos „strstr()“ rezultatas rodo, kad eilutėje yra poeilutė, tačiau antrosios funkcijos „strstr()“ rezultatas rodo, kad eilutėje nėra poeilutės.

Išvada

Šiame vadove nuodugniai išnagrinėta sąvoka „eilutė apima eilutę“. Išnagrinėjome du metodus, kurie padeda ieškoti, ar eilutėje yra poeilutė. Šiame vadove paaiškinome „find ()“ ir „strstr ()“ funkcijas, kurias C++ pateikia šiai užduočiai atlikti. Parodome unikaliais pavyzdžiais, kuriuose išmokome naudoti šias funkcijas, kad patikrintume, ar joje yra „eilutė“.