Avatar billede perfi Nybegynder
26. februar 2001 - 15:53 Der er 3 kommentarer og
2 løsninger

konvertering af string

Hej
Har glemt mine c++ bøger der hjemme og jeg sidder med et akut problem. Skal konvertere en string til char ved at lægge det ned i et array. f.eks
string navn=\"olsen\"; skal ned i et array så det bliver til
char navnarr[]={\'o\',\'l\',\'s\',\'e\',\'n\'};
Er der en der hurtigt kan svare på dette så vil jeg blive glad????
perfi
Avatar billede wisen Nybegynder
26. februar 2001 - 16:00 #1
Hvad med noget i retning af

string s = \"olsen\";
char* p =  new char[s.length()+1];
s.copy(p, string::npos);
p[s.length()]=0;


/Wisen
Avatar billede mtilsted Nybegynder
26. februar 2001 - 17:56 #2
Hvad er der i vejen med

String *s=new String(\"olsen\");
char *Name=s->c_char();

Bemærk at det array du faar ejes af stringen.
Saa du maa ikke ændre indholdet. Du kan dog nemt copiere indholdet over it dit eget array med strcpy.

Avatar billede wisen Nybegynder
27. februar 2001 - 08:09 #3
Ang. mtilsted\'s besvarelse, så skal du bare være opmærksom på, at du _IKKE_ må ændre indholdet at det array du får fra c_char(). Dette problem har du ikke i forbindelse med min besvarelse. Hvis du bare skal bruge en streng som et array, ja, så er det godt nok. Ellers skal du lave en kopi at strengen over i et array... 
Avatar billede soepro Nybegynder
27. februar 2001 - 09:49 #4
wisen har ret - den stillede opgave var at få kopieret indholdet over i et char array. Jeg synes selv bedst om følgende variant, fordi den forhindrer at der bliver skrevet for eget over i char array\'et:

string navn=\"Olsen\";
char  navnArray[10];
strncpy(navnArray, navn.c_char(), sizeof(navnArray)-1);
Avatar billede perfi Nybegynder
28. februar 2001 - 14:07 #5
Hej

Jeg takker for svarene. Jeg er tilhænger af den mest simple måde at udføre tingene på, så derfor giver jeg 30 p. til soepro, da jeg vil benytte hans metode, selvom wisen fungerede fint, og da du var den første på pletten, får du ligeledes 30....takker mange...perfi
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