Dead_Rabbit Skrevet 26. mars 2004 Del Skrevet 26. mars 2004 (endret) 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 mvh Zirener. Edit:Var nok av leifer her azz Endret 26. mars 2004 av zirener Lenke til kommentar
Steinbitglis Skrevet 26. mars 2004 Del Skrevet 26. mars 2004 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
Bøb Skrevet 26. mars 2004 Del Skrevet 26. mars 2004 Stringer er også veldig enkle å resize eller fjerne visse elementer i, pga member functions. Lenke til kommentar
abcd423417984 Skrevet 26. mars 2004 Del Skrevet 26. mars 2004 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
Bøb Skrevet 26. mars 2004 Del Skrevet 26. mars 2004 ...og da har man member function c_str() Lenke til kommentar
abcd423417984 Skrevet 26. mars 2004 Del Skrevet 26. mars 2004 ...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
søppel Skrevet 26. mars 2004 Del Skrevet 26. mars 2004 void funk1(char* c); // noen funksjoner tar slike c-strenger.. void funk2(char const* c); // ..andre tar slike .. string s; funk1(s.c_str()); funk2(const_cast<char*>(s.c_str())); Lenke til kommentar
Dead_Rabbit Skrevet 26. mars 2004 Forfatter Del Skrevet 26. mars 2004 ...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
Dead_Rabbit Skrevet 26. mars 2004 Forfatter Del Skrevet 26. mars 2004 Tusen takk til Styggentorsken, Bøb, Invicus og Søppel Lenke til kommentar
Dead_Rabbit Skrevet 26. mars 2004 Forfatter Del Skrevet 26. mars 2004 (endret) Stringer er også veldig enkle å resize eller fjerne visse elementer i, pga member functions. Hva mener du egentlig med det?? EDIT:Oi der var det en hefitig leif Edit2: Var vist ikke værre enn å tenke litt selv Endret 27. mars 2004 av zirener Lenke til kommentar
søppel Skrevet 26. mars 2004 Del Skrevet 26. mars 2004 Når man snakker om "c streng" mener man en char-array, altså char* eller char[]. Lenke til kommentar
søppel Skrevet 26. mars 2004 Del Skrevet 26. mars 2004 Stringer er også veldig enkle å resize eller fjerne visse elementer i, pga member functions. Hva mener du egne\tlig med det?? http://www.cppreference.com/cppstring.html Lenke til kommentar
Dead_Rabbit Skrevet 26. mars 2004 Forfatter Del Skrevet 26. mars 2004 Stringer er også veldig enkle å resize eller fjerne visse elementer i, pga member functions. Hva mener du egne\tlig med det?? http://www.cppreference.com/cppstring.html Fin link det der Lenke til kommentar
Anbefalte innlegg
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 kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå