11. september 2006 - 15:11Der er
5 kommentarer og 1 løsning
strtok - kan det tælles hvor mange token tegn der fjernes
Jeg benytter følgende kode:
const int MAX_LENGT = 100;
char LineInMem[] = ".00,,,,,,.000,1.23,exit"; char* token; char* ArrayOfValues[MAX_LENGTH]; int i = 0; char seps[] = ",";
token = strtok( LineInMem, seps ); while( token != NULL ) { /* While there are tokens in "string" */ ArrayOfValues[i] = token; i++; /* Get next token: */ token = strtok( NULL, seps ); }
Det er også meget fint i min ArrayOfValues får jeg noget det ligner: [0]= ".00" [1] = ".000" [2] = "1.23" [3] = "exit". Men 1000$ spørgsmålet er kan jeg på nogen måde se hvor mange "," (kommaer) der er blvet sprunget over før jeg fik en ny værdi i mit token? I dette tilfælde 5 overspringninger.
I dette særtema ser vi på, hvordan cloud og AI bliver fundamentet for virksomhedernes digitale forretning, og hvordan de nye muligheder for automatisering og forretningsværdi kan udnyttes uden at miste overblik, sikkerhed og menneskelig kontrol.
Da strtok() kun returnerer en pointer, og den pointer ikke kan være NULL når den ikke er færdig med strengen, så vil jeg antage at det er en umulighed. Hvis det er nødvendigt at kende positionen af dit token, så skal du nok skrive din egen parser. Evt. ved hjælp af Lex hvis du har nogle mere avancerede formater også :).
OK - hvis du ikke vil have dem så tager jeg dem selv igen...
Synes godt om
Ny brugerNybegynder
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.