Avatar billede thjal Nybegynder
11. september 2006 - 14:12 Der er 6 kommentarer og
1 løsning

strtok - hvordan

jeg har følgende kode:

char LineInMem[] = ".00,.00,.00,Exit,1.012"; //Example
char* token;
char* ArrayOfValue[MAX_LENGTH];
int i = 0;
char seps[] = " ,\n";
token = strtok( LineInMem, seps );

while( token != NULL )
{
    /* While there are tokens in "LineInMem" */
    ArrayOfValues[i] = token;
    i++;
    /* Get next token: */
    token = strtok( NULL, seps );
}

Men der sker det at LineInMem bliver "ødelagt" efter kaldet der hedder: token = strtok( LineInMem, seps );
Der sker det at LineInMem pludseligt indeholder ".00" og det er så det jeg får skrevet ind på alle pladserne i ArrayOfValues[]. Hvad gør jeg galt? Jeg synes ellers at jeg har fulgt "kogebogen" til punkt og prikke.

Jeg giver 60 point fordi det haster ;-)
Avatar billede lars314 Nybegynder
11. september 2006 - 14:27 #1
Virker fint her, så din kode er ok..

Du har dog en skrivefejl, "ArrayOfValue" lidt senere skriver du "ArrayOfValues", men det er vist ikke dit problem.
Avatar billede lars314 Nybegynder
11. september 2006 - 14:27 #2
Hvad værdi har MAX_LENGHT ?
Avatar billede thjal Nybegynder
11. september 2006 - 14:42 #3
const int MAX_LENGTH = 32767;
Avatar billede thjal Nybegynder
11. september 2006 - 14:43 #4
og angående min skrivefejl for ArrayOfValues så nej det er ikke det der er problemet
Avatar billede lars314 Nybegynder
11. september 2006 - 14:54 #5
Der er rigtigt nok at den laver om på LineInMem, men jeg får stadig de rigtige tokens trukket ud. Er du sikker på du ikke gør det.
Modificer evt.
char LineInMem[] = ".00,.00,.00,Exit,1.012";
til
char LineInMem[] = ".01,.02,.03,Exit,1.012";
Avatar billede thjal Nybegynder
11. september 2006 - 14:57 #6
lukker spørgsmålet da det var et andet sted i min kode jeg havde problemet... Der er kun at sige at ovenstående virker
Avatar billede lars314 Nybegynder
11. september 2006 - 22:37 #7
Jamen tak
Jeg er da glad for du fandt ud af din kode var ok, som jeg sagde i min kommentar.
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



IT-JOB

Danske Commodities A/S

Senior Software Developer & Tech Lead

Danske Spil A/S

Erfaren UI Designer

SEGES Innovation

DevOps med ambitioner

Danske Andelskassers Bank A/S

IT-konsulent

Netcompany A/S

IT Consultant