C++:
De lengte van een string vinden
Hoe te:
C++ biedt een eenvoudige manier om de lengte van een string te vinden met de length() methode van de std::string klasse. Maar als je van de oude stempel bent, kun je nog steeds met C-stijl strings en strlen() gaan. Hier zijn beide in actie:
#include <iostream>
#include <string>
#include <cstring>
int main() {
// Gebruik van std::string
std::string groet = "Hallo, wereld!";
std::cout << "Lengte van string (std::string): " << groet.length() << std::endl;
// Gebruik van C-stijl string
const char *c_groet = "Hallo, wereld!";
std::cout << "Lengte van string (C-stijl): " << strlen(c_groet) << std::endl;
return 0;
}Voorbeelduitvoer:
Lengte van string (std::string): 13
Lengte van string (C-stijl): 13Diepere Duik:
Oorspronkelijk erfde C++ de C-stijl karakterreeksen en de bijbehorende strlen() functie van C. strlen() berekent de lengte door door de array te lopen totdat het het null-karakter, '\0', tegenkomt. Dit is een eenvoudige maar effectieve strategie, maar het kan niet op tegen de efficiëntie van std::string.length(), dat typisch de lengte bijhoudt voor snelle ophaling.
Alternatieven? Zeker:
- Je kunt ook de
size()methode gebruiken, identiek aanlength()voorstd::string. - Voor brede karakterreeksen zijn
std::wstringen zijnlength()methode je vrienden. - Pittigere keuzes omvatten aangepaste functies of het gebruik van algoritmen zoals
std::distancemet iterators.
Let op, std::string::length() retourneert een size_t type, een ondertekend geheel getal, dat je kan verrassen met onverwachte gedragingen als je het mengt met ondertekende types in uitdrukkingen.
Zie Ook:
- C++ referentie voor
std::string::length(): https://en.cppreference.com/w/cpp/string/basic_string/length - C++ referentie voor
strlen(): https://en.cppreference.com/w/cpp/string/byte/strlen - Meer over
std::stringversus C-stijl strings: https://www.learncpp.com/cpp-tutorial/4-4a-c-style-strings/ - Voor de enthousiastelingen die dieper in de
std::stringklasse willen duiken: https://en.cppreference.com/w/cpp/string/basic_string