Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 02/06/2007, à 15:53

Damiens

utilisation de strtok (langage c)

j'essaie de scinder une chaine de caractere en plusieurs token et voici mon code :

#include <stdio.h>
#include <stdlib.h>
#include <string.h>


int lectureAtt(int *brol,char temp[]){
  char buff[256] = "1234;damiens";
  char *pch;

  pch = strtok(buff,";");
  *brol = atoi(strtok(NULL,";"));
  strcpy(temp,strtok(NULL,";"));
  printf("%d\t%s\n",*brol,temp);
}

int main(int argc, char** argv){
  int i = 0;
  char pseudo[16] = "brol";

  printf("%d\t%s\n",i,pseudo);

  lectureAtt(&i,pseudo);

  printf("%d\t%s\n",i,pseudo);
}

lors de l'execution j'obtiens ceci :

sneimad@sneimad-desktop:~/projets/essais$ ./a.out
0       brol
Erreur de segmentation (core dumped)

lorsque j'utilise gdb sur l'executable (gdb ./a.out core et (gdb) where), il me dit : no stack.

Pourriez-vous m'aider svp ?

PS : pour l'utilisation de strtok je me suis base sur la description de cette page http://www.cplusplus.com/reference/clib … trtok.html et je ne suis pas sur de l'avoir applique correctement.

#2 Le 02/06/2007, à 16:55

obiwankennedy

Re : utilisation de strtok (langage c)

De mémoire, je dirais que c'est plus comme cela.

int lectureAtt(int *brol,char temp[]){
  char buff[256] = "1234;damiens";
  char *pch;

 *brol = atoi(strtok(buff,";"));
  pch = strtok(NULL,";");
 
  strcpy(temp,pch);
  printf("%d\t%s\n",*brol,temp);
}

Dernière modification par obiwankennedy (Le 02/06/2007, à 16:56)


Dans mes logiciels, j'écris ton nom.
SGNGD: SvgGd is Not GD
Rolisteam

Hors ligne

#3 Le 02/06/2007, à 17:06

damiens

Re : utilisation de strtok (langage c)

Merci beaucoup !