C++:
Merkkijonon pituuden selvittäminen
How to: (Kuinka tehdä:)
#include <iostream>
#include <string>
int main() {
std::string viesti = "Hei Suomi!";
std::cout << "Merkkijonon pituus: " << viesti.length() << std::endl;
return 0;
}
Output:
Merkkijonon pituus: 10
Deep Dive (Sukellus syvyyksiin):
Historiallisesti pituusfunktion implementointi oli kiinteä osa kokemattomampien kielten string-tyyppiä. C:ssä merkkijonon pituus löydetään strlen
-funktiolla, joka iteroi merkkijonon läpi etsien nolla-terminaattoria (null terminator, \0
). C++ modernisoi tämän antamalla string-luokalle length()
-jäsenfunktion, joka palauttaa merkkijonon pituuden.
Vaihtoehtoisia tapoja laskea merkkijonon pituus:
size()
: saman kuinlength()
.- Vanhat C-tyyliset funktiot:
strlen()
(varo buffer overflow -riskejä). - Iteraatio loopilla ja manuaalinen laskenta (ei suositella, koska std::string hoitaa tämän tehokkaammin).
C++ string luokka käsittelee pituuden tallennuksen sisäisesti. Se tekee pituuden hakemisesta nopeaa (O(1) aikavaatimus), toisin kuin C:n strlen
, joka vaatii aina O(n).
See Also (Katso myös):
- C++ Standard Library Reference: https://en.cppreference.com/w/cpp/string/basic_string/length
- C-kielinen
strlen
funktio: https://en.cppreference.com/w/c/string/byte/strlen