2013-06-20 1 views
0

J'utilisais la fonction strtok() en C. Elle renvoie un pointeur vers les emplacements où elle sépare la chaîne.Comment trouver les indices sur lesquels strtok() divise la chaîne?

int main() 
{ 
    char s[100]="A B C D"; 
    char *p; 
    p=strtok(s," "); 
    while(p!=NULL){ 
     p=strtok(NULL,"."); 
     //Do something 
    } 
    return 0; 
} 

Comment puis-je connaître l'indice de division (de préférence en temps constant)?

Répondre

4

Pour trouver l'index:

ptrdiff_t index = p - s; 

En plus: Montrez votre vrai code - s = "A B C D" ne compilera pas.

0

Son simple comme décrit dans le post précédent. Strtok renvoie l'adresse. Soustrayez l'adresse retournée à l'adresse initiale du tableau.

p -s;

Questions connexes