Gå til innhold

Anbefalte innlegg

Hei var inne på en eller annen side og så på et forum at en eller annen sa at det er bede å bruke string enn char, isåfall hvorfor det og kan noen forklare meg det med string litt nermere(forskjeller og sån)?

 

 

Setter pris på alle svar :thumbs::p

mvh Zirener.

Edit:Var nok av leifer her azz

Endret av zirener
Lenke til kommentar
Videoannonse
Annonse

Char[] er bare en rekke med 8-bits tegn, siste i rekken er 0x0 eller '\0'. String er en klasse hvis jeg ikke tar feil (er ingen ekspert selv), derfor har hver string mange innebygde funksjoner som f.eks sting.length() string.insert( posisjon, string) og string.erase( posisjon, antallTegn), disse medlems-funksjonene er veldig enkle å bruke.

Stringobjekter har ikke nullterminerings-tegn '\0' på slutten.

Lenke til kommentar

std::string (som det antagligvis er snakk om) er en veldig bra løsning. du slipper å bry deg om å på forhånd sette av plass til X antall bokstaver da klassen gjør det for deg. den har også innebygde funksjoner for de mest vanlige streng-operasjoner.

 

Eksempel på å legge tegn i en streng:

- C streng / char:

 

char streng[1024]; //legg merke til at man må definere størrelsen på forhånd
strcpy(streng, "tekst");

 

- std::string:

 

string streng = "tekst"; //forhåndsdefinerer ikke størrelsen på forhånd og trenger ikke strcpy

 

Eksempel på å LEGGE TIL tekst i en eksisterende streng:

- C streng / char

 

char streng[1024]; //samme som i stad
strcpy(streng, "tekst"); //samme som i stad
strcat(streng, "tekst2");

 

- std::string:

 

string streng = "tekst";
streng += "tekst2"; //MYE lettere

 

evt

 

streng = streng + "tekst2";

 

 

 

Ulempene er selvfølgelig at mye biblioteker (som f.eks. winapi) ikke støtter std::string

Lenke til kommentar
...og da har man member function c_str()  ;)

jepp den er fin, MEN den virker ikke så bra hvis du kommer til en funksjon som krever peker/referanse til en c streng.

 

 

Selv bruker jeg std::string så ofte jeg kan, og i det situasjoner den ikke kan brukes lager jeg en wrapper som gjør at jeg kan bruke den :)

Lenke til kommentar
...og da har man member function c_str()  ;)

jepp den er fin, MEN den virker ikke så bra hvis du kommer til en funksjon som krever peker/referanse til en c streng.

 

 

Selv bruker jeg std::string så ofte jeg kan, og i det situasjoner den ikke kan brukes lager jeg en wrapper som gjør at jeg kan bruke den :)

Hva mener du med C streng?(Ser ikke at boka mi tar for seg noe string, så jeg kan ikke en dritt om det, kun det jeg har lest på nettet)

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...