single
Utfordring: Tilgang til og Manipulering av Strengelementer
Sveip for å vise menyen
Indeksering av en streng
Vi kan få tilgang til elementene i en string (som i hovedsak er char-tegn) ved å bruke hakeparenteser [] for indeksering, på samme måte som med arrayer. Dette gjør det også mulig å erstatte et tegn på en bestemt posisjon.
indexing.h
12string str = "Cpdefinity"; // Cpdefinity str[1] = 'o'; // Codefinity
Indeksering i en string starter fra null, akkurat som i arrayer.
Lengden på strengen
Med denne indekseringen kan du forsøke å få tilgang til en ugyldig indeks (utenfor rekkevidde), og kompilatoren vil ikke gi deg noen advarsel om dette.
main.cpp
1234567#include <iostream> int main() { std::string word = "Codefinity"; std::cout << word[12]; // Word's length is 10 }
Som du ser, er utdataene uventede, og C++ gir ingen advarsel om problemet. For å forhindre dette kan du bruke metoden .length() for å finne lengden på en string og sikre at indeksen er innenfor gyldig område.
main.cpp
123456789101112#include <iostream> int main() { std::string word = "Codefinity"; int index = 12; if (index >= word.length()) std::cout << "The output is unexpected!" << std::endl; else std::cout << word[index]; // Word's length is 10 }
Indeksering ved bruk av metode
En annen måte å indeksere på er å bruke .at()-metoden. For å hente ut tegnet med indeks n, kan vi bruke følgende syntaks:
at.h
1str.at(n);
Den fungerer på samme måte som str[n], men vil gi en feil hvis du angir en indeks som er utenfor rekkevidde.
main.cpp
12345678#include <iostream> int main() { std::string word = "Codefinity"; std::cout << word.at(12); // word's length is 10 // Try outputting the character with the index 5 }
Øvelse
Som nevnt tidligere, kan vi erstatte tegnene i en streng ved å bruke indeksering (både med [] og .at()). Her er et eksempel:
main.cpp
123456789#include <iostream> int main() { std::string word = "Cpdefinitu"; word[1] = 'o'; word.at(word.length() - 1) = 'y'; // length - 1 accesses the last element std::cout << word; }
Swipe to start coding
Du har en e-postadresse som en streng. Oppgaven din er å maskere brukernavndelen av e-posten for personvern.
Funksjonen maskEmail tar en streng som representerer e-postadressen.
- Inne i
maskEmail, brukfind-metoden for å finne posisjonen til'@'-symbolet, som markerer slutten på brukernavnet. - Sjekk om brukernavnet er lengre enn 1 tegn. Hvis ikke, returner e-posten uendret.
- Bruk en
for-løkke for å iterere fra indeks 1 og opp til (men ikke inkludert) posisjonen til'@'. - Inne i løkken, erstatt hvert tegn med
'*'for å maskere brukernavnet. - Returner den modifiserte e-posten.
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