Bonjour, j'ai un petit soucis avec des pointeurs.
Voici mon code :
J'utilise strtok afin de récupérer des chaînes de caractères bien précises. Le problème est que lorsque je récupère une des chaînes, je dois refaire un strtok afin de récuperer une autre chaîne, par exemple :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 //--- On extrait les informations des données du buffer pointeur = strtok(buffer,"\x0D\x0A"); printf("pointeur1 : %s\n",pointeur); if(pointeur != NULL) { temporaire = pointeur; temporaire = strtok(pointeur,"\x20"); printf("temporaire : %s",temporaire); printf("point : %s",pointeur); if(strcmp(temporaire,"+CMTI:") == 0) { printf("Message reçu"); // strcat(temporaire,"AT+CMGR="); } } while(pointeur != NULL) { pointeur = strtok( NULL, "\x0D\x0A" ); if(pointeur != NULL)..... }
je peux recevoir : 1er cas : AT+CMGR=+33645644754\r\n>\x20\r\n ou 2ème cas : AT+CMTI:\x20"SM",2.
Pour la première chaîne, je la sous-divise en deux chaînes, AT+CMGR="+33645644754, puis >\x20 et l'autre chaîne est une seule et même chaîne, AT+CMTI:\x20"SM",2. Donc lorsque j'ai récupéré la première chaîne, je fais un nouveau strtok avec comme caractère de séparation, \x20 afin de savoir si je suis dans le 1er ou le 2ème cas. Or quand je fais ce test et que je reçois la chaîne du 1er cas, l'exécution ne repère plus la seconde chaîne (>\x20), comme si pointeur ne valait plus la même valeur. J'espère mettre bien exprimé, et si vous pouviez me donner des pistes, problèmes de pointeurs?de variables...
Je voudrais aussi pouvoir copier uniquement la valeur de pointeur dans temporaire pour que lorsque je modifie temporaire cela ne modifie pas pointeur.
Merci
Partager