Semmonen pieni kysymys tuli vaan mieleen, että kuinka string-muuttuja toimii, kun sille ei määritetä muistipaikkojen määrää etukäteen? Ja muutenkin olisi kiva saada infoa tästä muuttujasta ja siitä, miten se eroaa char[x] muuttujasta.
Kiitos :)
Mitä siitä oikein haluat tietää?
Varataan ensiksi joku määrä tavuja. Jos teksti ei mahdukaan siihen tilaan niin varataan tuplasti edellinen määrä ja tallennetaan sinne.
Ei mulla ole mitään tietoja stringin syvällisemmästä toteutuksesta, mutta noin sen voisi tehdä.
Ohjelmointiputkan C++-oppaassa kerrotuilla tiedoilla pystyisit jo jotenkuten toteuttamaan oman string-luokan. Ehkä kysymyksesi kannalta olennaisin asia ovat osoittimet ja dynaaminen muistinhallinta. Toteutus onnistuu suunnilleen Deffin esittämällä tavalla, paitsi että erittäin suurten tekstien kohdalla tilan kaksinkertaistaminen ei ole enää hyvä ajatus, vaan kannattaa tehdä pienempiä muutoksia.
kiitos vastanneille :)
vielä pyörii mielessä, että missä tilanteissa kannattaisi harkita, kumpaa muuttujaa käyttää, string tai char[]?
Käytät aina stringiä.
Jos et tiedä, miksi käyttäisit char[]:ia, käytä stringiä. Helpotat elämääsi. Ja jos jollekin funktiolle pitää antaa parametrina char[]-taulu, sen saa stringnistä .c_str()-metodilla.
okei, kiitosta :)
Aihe on jo aika vanha, joten et voi enää vastata siihen.