Avatar billede perlarsen.com Nybegynder
12. juni 2001 - 21:07 Der er 5 kommentarer og
4 løsninger

hvad skal man helst definere en variabel som hvis det skal være noget tekst???

JA, det siger vist sig selv!
hvad, og hvordan ville i gøre, hvis i skulle bruge noget tekst (her er en tekst)???

per
Avatar billede twm Nybegynder
12. juni 2001 - 21:16 #1
char strtext[16] = \"her er en tekst\";
Avatar billede twm Nybegynder
12. juni 2001 - 21:18 #2
Husk du skal altid have én ekstra i længden for at kunne bære en NUL terminator \'\\0\'
Dvs teksten oven over er 15 lang, dvs du deklarerer den 16
Avatar billede jpk Nybegynder
13. juni 2001 - 08:47 #3
Jeg bruger ofte STL\'s string eller MFC\'s CString...

Man kan ikke generelt afgøre hvad der er den bedste måde at repræsentere en tekststreng på, det afhænger af dit behov i den enkelte situation!
String-klasser (såsom ovennævnte) er ofte dynamiske og har mange metoder til at manipulere strengen. Det er nyttigt hvis du vil ændre længde eller søge i strengen osv. Der er dog et lille overhead forbundet med brug af sådanne klasser, fx i form af memory-forbrug. På en moderne computer er det dog ikke så relevant...
Har du ikke brug for al denne funktionalitet, er twm\'s forslag en løsning

Jacob
Avatar billede moykal Nybegynder
13. juni 2001 - 10:54 #4
MFC CString\'s har den ulempe at man (i princippet) lukker MFC (tungt indenfor). Fordelen ved \"STL\"-strings (standard lib strenge) er, at det er en template, der bl.a. tager character typen som template-parameter. std::string er for det meste ikke andet end en typedef:

typedef std::basic_string<char> string;

ligesom wide-characters har:

typedef std::basic_string<wchar_t> wstring;

og dette gør det jo nemt at supporte UNICODE såvel som non-UNICODE:

#ifdef _UNICODE
  typedef wstring string_type;
#else
  typedef string string_type;
#endif

et centralt sted og så altid referere til string_type som ens foretrukne streng variabel type.

Hvis du arbejder under Windows, vil du nemt kunne risikere at skulle kunne interface med andet end C++, hvorfor det også er godt at have styr på BSTR. Læs derfor doc\'en om CComBSTR-typen.

Appropos CString, så kan man undgå ancient MFC-shit, hvis man i stedet lukker WTL indenfor. Læs om WTL på www.msdn.microsoft.com, www.develop.com. WTL implementerer de fleste af de samme typer som MFC, men det er væsentligt mere moderne C++ end MFC. Og de eksekverbare fylder omkr. 10 pct. af deres pendant tilbage i MFC-age.
Avatar billede kamikaze Nybegynder
13. juni 2001 - 13:06 #5
->twm

Du behøver ikke at angive længden, hvis du tildeler værdi med det samme:

char strtext[] = \"Her er noget tekst!\";
Avatar billede kamikaze Nybegynder
13. juni 2001 - 13:09 #6
Du kan også bruge char-pointere (char*).

char* strtxt;
strtxt = \"Her er noget tekst!\";
Avatar billede kamikaze Nybegynder
13. juni 2001 - 13:15 #7
MFC (Microsoft Foundation Classes) er KUN til windows, og dermed ikke \"rigtig\" C++ (men Microsoft C++). MFC er de wrapper-klasser man benytter i bla. Visual C++. I C++ builder kan man benytte VCL (Visual Component Library) og bla. en streng-klasse kaldet AnsiString, der er utrolig nem at håntere.

MEEEEEN.... STL (Standard Template Library) er det \"rigtige\" bibliotek at bruge, da det garanterer at din kode er portabel. STL er defineret af forfatteren til C++ (B. Stroustrup), og burde være ens i enhver kompiler!
Avatar billede nomiz Nybegynder
14. juni 2001 - 19:50 #8
spm. #81000.. hehe
Avatar billede wanger Nybegynder
04. juli 2002 - 00:44 #9
WANGEREN var her.. .,'¨´,.

TILLYKKE MED DE 81000

HEY nomiz det er mit TERRI..
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester