Fantastisk!
Completion rate forbedret til 4.35single
Utfordring: Søk i Strenger
Sveip for å vise menyen
Metode find()
Noen ganger kan det være nødvendig å søke etter spesifikk tekst i en string. Dette kan gjøres ved å bruke metodene .find() eller .rfind(). La oss starte med .find()-metoden.
find.h
1str.find("text to find")
Returnerer indeksen til det første tegnet i det første treffet.
main.cpp
1234567#include <iostream> int main() { std::string str = "codecodefinity"; std::cout << str.find("code") << std::endl; // (code)codefinity }
Du kan også angi posisjonen til det første tegnet i strengen som skal vurderes i søket. Dette kan gjøres ved å bruke argumentet pos. Alle tegn før pos-indeksen ignoreres i søket.
Her er et eksempel på å finne den første "code" fra og med det tredje tegnet.
main.cpp
1234567#include <iostream> int main() { std::string str = "codecodefinity"; std::cout << str.find("code", 3) << std::endl; // __de(code)finity }
Metode rfind()
Du kan også finne siste forekomst av en tekst ved å bruke .rfind()-metoden.
rfind.h
1str.rfind("text to find")
Mens .find() henter det første forekomsten av tekst, finner .rfind() den siste forekomsten og står for reverse find.
main.cpp
12345678#include <iostream> int main() { std::string str = "codecodefinity"; std::cout << str.find("code") << std::endl; std::cout << str.rfind("code") << std::endl; }
Når .find() eller .rfind() ikke finner delstrengen, returnerer de string::npos. Dette er en numerisk konstant som representerer en ugyldig posisjon. Den lagres som den største mulige size_t-verdien, noe som gjør det enkelt å oppdage mislykkede søk.
main.cpp
12345678#include <iostream> int main() { std::string str = "codecodefinity"; std::cout << str.rfind("abc") << std::endl; std::cout << std::string::npos << std::endl; }
Swipe to start coding
Du utvikler et enkelt e-postfilter. Målet ditt er å tillate brukere å registrere seg med hvilken som helst e-postadresse og merke e-poster fra codefinity.com som tillatt.
Funksjonen isAllowedEmail tar inn en email som en string.
- Bruk
rfind()for å finne siste'@'-symbol i e-posten. - Sammenlign resultatet fra
rfindmed-1for å sjekke om'@'-symbolet finnes. Hvis ingen'@'finnes, returnerfalsefordi e-posten er ugyldig. - Initialiser en strengvariabel
domainsom en tom streng. - Bruk en
for-løkke som starter fraatPos + 1og går opp til lengden avemailfor å iterere over tegnene etter'@'. - I hver iterasjon, legg til tegnet i variabelen
domain. - Hvis
domainer lik"codefinity.com", returnertrue. Ellers returnerfalse.
Løsning
Takk for tilbakemeldingene dine!
single
Spør AI
Spør AI
Spør om hva du vil, eller prøv ett av de foreslåtte spørsmålene for å starte chatten vår