C++:
Extrahera delsträngar
How to (Hur man gör)
Exempel på C++ med standardbiblioteket <string>
:
#include <iostream>
#include <string>
int main() {
std::string fullText = "Hallå världen! Välkommen till C++ programmering.";
std::string substring = fullText.substr(6, 7); // Start vid index 6, ta 7 tecken.
std::cout << substring << std::endl; // Skriver ut "världen"
return 0;
}
Output:
världen
Använd find
för att hitta den startpunkt där delsträngen ska extraheras:
#include <iostream>
#include <string>
int main() {
std::string fullText = "Hej! Jag heter Erik och jag lär ut C++.";
std::size_t startPos = fullText.find("Erik"); // Hittar startindex för "Erik".
std::string name = (startPos != std::string::npos) ? fullText.substr(startPos, 4) : "";
std::cout << name << std::endl; // Skriver ut "Erik"
return 0;
}
Output:
Erik
Deep Dive (Djupdykning)
Extrahering av delsträngar är inte nytt; det har varit en del av programmeringsspråk så länge som strängar har funnits. I C++ använder vi substr
funktionen från <string>
biblioteket.
Det finns alternativ till substr
, som att använda iterators eller copy
funktionen tillsammans med back_inserter
för att skapa delsträngar. Valet mellan metoderna beror på situationen.
När det gäller implementationen utför substr
en kopia av data från ursprungssträngen, vilket kan vara en kostsam operation för mycket långa strängar.