Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lära Vanliga Strängmetoder | Textdatatyp
C++-Datatyper

bookVanliga Strängmetoder

Svep för att visa menyn

Lägg till

Vi såg att det inte är möjligt att lägga till nya tecken i slutet av en sträng med hjälp av indexering. Det finns dock en praktisk .append()-metod för detta ändamål.

append.h

append.h

copy
1
str.append("added part");

Sammanfoga

Ett annat sätt att göra detta är att använda +-operatorn. Den utför sammanfogning när den används på strängar.

main.cpp

main.cpp

copy
12345678
#include <iostream> int main() { std::string str = "Code"; str = str + "finity"; // or str += "finity" std::cout << str << std::endl; }

Den möjliggör även att lägga till text i början eller i båda ändar, vilket .append() inte klarar av.

main.cpp

main.cpp

copy
12345678
#include <iostream> int main() { std::string str = "finity"; str = "code" + str + ".com"; std::cout << str << std::endl; }

Infoga

Du kan infoga ny text i en sträng på en specifik position med metoden .insert().

insert.h

insert.h

copy
1
str.insert(pos, "text to add");

Positionen, som anges av parametern pos, bestämmer var den nya texten kommer att läggas till.

Den nya texten infogas före tecknet som för närvarande finns på den angivna positionen. Denna metod är användbar för att dynamiskt modifiera strängar utan att skapa nya.

Ersätt

Du kan också ersätta en del av en sträng med en annan sträng. Detta kan göras med metoden .replace().

replace.h

replace.h

copy
1
str.replace(start, n, "new text");

Här betyder start indexet för det första elementet som ska ersättas, och n står för längden på den del som ska ersättas.

Följande är en gif som visar hur .replace() fungerar.

Ta bort

Du kan också ta bort en del av en sträng med metoden .erase(). Detta är användbart när du behöver radera specifika tecken eller delsträngar från en sträng.

erase.h

erase.h

copy
1
str.erase(start, n);

Om parametern n motsvarar eller överstiger den återstående längden av strängen från start, kommer alla tecken från och med start att tas bort.

Parametrarna start och n fungerar på liknande sätt som i metoden .replace(), vilket ger flexibilitet att modifiera strängen efter behov.

main.cpp

main.cpp

copy
123456789101112131415161718192021
#include <iostream> int main() { std::string str = "finity"; str.append(".com"); // finity to finity.com std::cout << str << std::endl; str = "in" + str; // finity.com to infinity.com std::cout << str << std::endl; str.insert(2, "de"); // infinity.com to indefinity.com std::cout << str << std::endl; str.replace(0, 2, "co"); // indefinity.com to codefinity.com std::cout << str << std::endl; str.erase(10, 4); // codefinity.com to codefinity std::cout << str << std::endl; }
question mark

Vilken kod lägger till texten Hello i början av strängen str?

Select the correct answer

Var allt tydligt?

Hur kan vi förbättra det?

Tack för dina kommentarer!

Avsnitt 3. Kapitel 4

Fråga AI

expand

Fråga AI

ChatGPT

Fråga vad du vill eller prova någon av de föreslagna frågorna för att starta vårt samtal

Avsnitt 3. Kapitel 4
some-alt