Merkkijonon pituuden selvittäminen

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 kuin length().
  • 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):