bonjour,
j'ai un pointeur qui pointe sur 64 case memoire c_à_d que je stock une chaine de 64 caractéres alors je veut extraire la chaine de caractére et la divise sur 4 vatiable comme suit T1[16],T2[16] ,T3[16] et T4[16] et l'afficher:ccool:
Version imprimable
bonjour,
j'ai un pointeur qui pointe sur 64 case memoire c_à_d que je stock une chaine de 64 caractéres alors je veut extraire la chaine de caractére et la divise sur 4 vatiable comme suit T1[16],T2[16] ,T3[16] et T4[16] et l'afficher:ccool:
et ? quelle est ta question ? :|
A priori, comme tu l'as mentionné, il suffit d'affecter à T1 les 16 premiers caractères, à T2 les 16 suivants etc. Je pense que la réponse à ton problème est dans ton propre message...
le probléme est que lorsque je fait le boucle de 0 jusqu'a strlen(mon pointeur) et je fait affichage seulement seulement le premier tableu est juste les autr sont faut
Montre le code que tu as écrit.
on peut voir ton code ?
for (i=0;i<16;i++)
{
T1[i]=Buffer[i];
T2[i]=Buffer[i+16];
T3[i]=Buffer[i+32];
T4[i]=Buffer[i+44];
}
1)
Que viennent faire ici ces choses (que j'ai mis en rouge) ? :calim2:Code:
1
2
3
4
5
6
7 for (i=0;i<16;i++) { T1[i]=Buffer[i]; T2[i+16]=Buffer[i+16]; T3[i+32]=Buffer[i+32]; T4[i+44]=Buffer[i+44]; }
(EDIT : Apparemment, t'as édité entre temps.)
* 32 + 16 ne fait pas 44.
2) Tes 4 tableaux doivent chacun avoir une taille de 17. Une chaine de caractères se finit toujours par un '\0'... qu'il faut donc ajouter également.
tu as raison j'ai oublié de mettre la fin du chaine : '\0'
merci bien
:cry:
j'ai modifier la boucle
for (i=0;i<16;i++)
{
( t1[i]=Buffer[i] , t2[i]=Buffer[16+i] , t3[i]=Buffer[32+i] , t4[i]=Buffer[48+i]);
}
mais il y a toujours l'affichage faux
Tu as encore oublié le '\0' terminal
Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 #define DIM 16 char t1[DIM +1]; char t2[DIM +1]; char t3[DIM +1]; char t4[DIM +1]; for (i=0;i< DIM;i++) { t1[i]=Buffer[i] ; t2[i]=Buffer[DIM +i] ; t3[i]=Buffer[2*DIM +i] ; t4[i]=Buffer[3*DIM +i]; } t1[DIM ]= '\0'; t2[DIM ]= '\0'; t3[DIM ]= '\0'; t4[DIM ]= '\0';
Poste le code COMPLET et compilable que tu utilises, sinon on va tourner en rond indéfiniment.
à diogene
j'ai essayer ton code et et apart le petit parantése
t4[i]=Buffer[3*DIM +i]);
la simulation a marché et l'affichage aussi alors monsieur merci bien pour votre aide :D