C++:
Hitta längden på en sträng
Hur man gör:
#include <iostream>
#include <string>
int main() {
std::string text = "Hej Sverige!";
std::cout << "Längden på strängen är: " << text.length() << std::endl;
return 0;
}
Sample Output:
Längden på strängen är: 12
Fördjupning:
Förr använde vi C-stilens strlen()
från <cstring>
biblioteket för att räkna tecken i en sträng. C++ erbjuder std::string
klassen som har inbyggda metoder som .length()
och .size()
, vilka är funktionellt identiska. Dessa metoder returnerar ett size_type
värde som representerar antalet tecken.
Ett annat detalj är iteration. Man kan iterera genom en sträng med en loop för att räkna tecken, men det är inte effektivt jämfört med .length()
.
Alternativa metoder för att hitta en strängs längd inkluderar att använda std::distance
tillsammans med begin()
och end()
iteratorer, eller genom att använda nyare funktioner i <algorithm>
biblioteket. Det är dock sällan nödvändigt då std::string
erbjuder enklare och mer direkt tillgång till stränglängden.
Det är också viktigt att notera att std::string::length()
hanterar UTF-8 kodade strängar. För strängar kodade i en annan uppsättning karaktärer eller för att hantera Unicode-tecken mer korrekt kan du behöva se över bibliotek som ICU (International Components for Unicode).
Se även:
- C++ string documentation: https://en.cppreference.com/w/cpp/string/basic_string
- ICU project: http://site.icu-project.org/