Vanliga 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
1str.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
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
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
1str.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
1str.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
1str.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
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; }
Tack för dina kommentarer!
Fråga AI
Fråga AI
Fråga vad du vill eller prova någon av de föreslagna frågorna för att starta vårt samtal