C++ Academy · Lektion

Strängoperationer: concat, substr, find, replace

Konkatenera, dela upp, söka i och ersätta stränginnehåll med std::string-API:t.

Lektion 2 av 413 steg

Strängoperationer: concat, substr, find, replace är en gratis lektion i C++ Academy på CoddyKit. Detta är lektion 2 av 4. Du kan läsa vilka 3 lektioner som helst i den här lärvägen kostnadsfritt i sin helhet – därefter låser CoddyKit PRO upp alla lektioner, plus praktisk övning med en inbyggd kodredigerare och en AI-lärare dygnet runt. Den ingår i lärvägen för C++ Academy, och Era framsteg synkroniseras mellan webben och CoddyKit-appen. Kursen i C++ Academy innehåller totalt 4 lektioner.

Konkatenering med +

Operatorn + sammanfogar två strängar till en ny sträng. += lägger till text direkt i den befintliga strängen.

std::string a = "Hello, ";
std::string b = "World";
std::string c = a + b;     // "Hello, World"
a += b;                    // a is now "Hello, World"

Lägg till effektivt

Upprepade + på långa strängar skapar många temporära objekt. Använd += eller append() i prestandakritiska loopar.

std::string result;
for (auto& word : words) {
    result += word;
    result += ' ';
}

Delsträng med substr

substr(pos, len) returnerar en ny sträng som börjar vid pos. len är som standard resten av strängen.

std::string s = "Hello, World";
std::cout << s.substr(0, 5);   // "Hello"
std::cout << s.substr(7);      // "World"

Söka efter delsträngar: find

find(needle) returnerar indexet för den första träffen, eller std::string::npos om ingen träff hittas.

std::string s = "the quick brown fox";
auto pos = s.find("quick");
if (pos != std::string::npos)
    std::cout << "Found at " << pos;

Söka från en position

Skicka med ett andra argument för att börja sökningen från ett specifikt index — användbart när du vill hitta alla förekomster.

std::string s = "abc abc abc";
size_t pos = 0;
while ((pos = s.find("abc", pos)) != std::string::npos) {
    std::cout << pos << ' ';
    pos += 3;
}

rfind: söka från slutet

rfind hittar den senaste förekomsten. find_first_of och find_last_of söker efter valfritt tecken från en uppsättning.

Ersätta på plats

replace(pos, len, str) ersätter len tecken vid pos med str — den nya strängen kan ha en annan längd.

std::string s = "Hello, World";
s.replace(7, 5, "C++");
std::cout << s;  // "Hello, C++"

Ta bort tecken

erase(pos, len) tar bort en delsträng. Om du anropar erase() utan argument töms hela strängen.

std::string s = "Hello, World";
s.erase(5, 2);          // removes ", "
std::cout << s;         // "HelloWorld"

Infoga tecken

insert(pos, str) infogar str vid pos och flyttar allt annat åt höger.

std::string s = "HelloWorld";
s.insert(5, ", ");
std::cout << s;  // "Hello, World"

Jämföra strängar

Använd standardoperatorerna för jämförelse eller compare(). Jämförelsen är lexikografisk.

std::string a = "apple", b = "banana";
if (a < b) std::cout << "apple comes first";

Ersätta alla förekomster

Standardbiblioteket har inget enda anrop för att ersätta alla förekomster. Skriv en enkel hjälpfunktion eller använd std::regex.

void replaceAll(std::string& s, const std::string& from, const std::string& to) {
    size_t pos = 0;
    while ((pos = s.find(from, pos)) != std::string::npos) {
        s.replace(pos, from.size(), to);
        pos += to.size();
    }
}

Snabbtest

Vad returnerar "hello".find("xyz") när delsträngen saknas?

Sammanfattning

std::string erbjuder ett omfattande API: + och += för att sammanfoga, substr för att ta ut delsträngar, find för att söka samt replace, erase och insert för att redigera. Jämför med std::string::npos efter find.

Gratis att börja

Lär dig C++ med en AI-lärare – gratis

Skriv och kör riktig kod i webbläsaren, få omedelbar hjälp av en AI-lärare dygnet runt och fortsätt där du slutade – på webben eller i appen.

Kurser
51
Lektioner
203

Vanliga frågor

Är lektionen ”Strängoperationer: concat, substr, find, replace” gratis?

Ja – du kan läsa vilka 3 lektioner som helst i lärvägen C++ Academy, inklusive ”Strängoperationer: concat, substr, find, replace”, kostnadsfritt i sin helhet här på webben. Därefter låser CoddyKit PRO upp alla lektioner, plus interaktiv övning med en inbyggd kodredigerare och en AI-lärare dygnet runt. Kursen i C++ Academy innehåller totalt 4 lektioner.

Vad lär jag mig i ”Strängoperationer: concat, substr, find, replace”?

Konkatenera, dela upp, söka i och ersätta stränginnehåll med std::string-API:t. Ni övar på C++ Academy med praktisk kod som körs direkt i webbläsaren, medan en AI-handledare som är tillgänglig dygnet runt svarar på Era frågor under lektionen.

Behöver jag någon erfarenhet för att börja lära mig C++ Academy?

Du behöver inga förkunskaper. Utbildningen i C++ Academy på CoddyKit är upplagd för allt från nybörjare till avancerade elever, så att du kan börja här eller från början och gå fram i din egen takt. Detta är lektion 2 av 4.

Hur lång tid tar lektionen ”Strängoperationer: concat, substr, find, replace”?

De flesta CoddyKit-lektioner tar cirka 5–10 minuter. Varje lektion är kort och interaktiv, så att du gör stadiga framsteg och kan fortsätta precis där du slutade – på webben eller i appen.

Kan jag skriva och köra kod i den här C++ Academy-lektionen?

Ja. Varje C++ Academy-lektion innehåller en inbyggd kodredigerare, så att du kan skriva och köra riktig kod direkt i webbläsaren och få omedelbar AI-feedback – utan lokal installation.

Alla lektioner i den här kursen

  1. std::string jämfört med C-stilens char-arrayer
  2. Strängoperationer: concat, substr, find, replace
  3. Stringstream: stringstream för parsning
  4. Strängkonverteringar: to_string och stoi
← Tillbaka till C++ Academy