moloko2000
Messages postés16Date d'inscriptionmardi 5 août 2003StatutMembreDernière intervention26 août 2003
-
18 août 2003 à 15:21
HCJarod
Messages postés221Date d'inscriptionmardi 12 août 2003StatutMembreDernière intervention11 décembre 2008
-
27 août 2003 à 14:57
lorsque j'utilise strncpy je n'arrive pas à copier le nombre de caractères souhaités
Par exemple lorsque je fais
strncpy(temp,tab_res[0].timeStamp,8);
au lieu de me copier 8 caractère il en copie 9
temp à la valeur suivante:
200206051 soit 9 caractères au lieu de 8 je n'y comprend rien
Bub325
Messages postés41Date d'inscriptiondimanche 9 février 2003StatutMembreDernière intervention28 avril 2010 27 août 2003 à 10:42
Il est inutil de faire ça puisque strncpy ajoute de lui même le caractère '\0'. et c'est lui le 9ème caractère qui pose tant de problème, il sert seulment a indiquer la fin de la chaine de caractère
HCJarod
Messages postés221Date d'inscriptionmardi 12 août 2003StatutMembreDernière intervention11 décembre 20081 27 août 2003 à 14:57
Tu n'a pas tord mais regarde la description de strncpy()
Description
Copies a given number of bytes from one string into another, truncating or padding as necessary.
strncpy copies up to maxlen characters from src into dest, truncating or null-padding dest. The target string, dest, might not be null-terminated if the length of src is maxlen or more.
Il y a donc des possibiliés d'eereur s'il ne maitrise pas la taille de ses chaines de caractères. Alors dans le doute rajoutée se qu'il faut ou il faut. Sans oublier qu'en C l'indexation commence à 0 et une chaine de 8 caractères se termine à l'index 8 par '\0'.
Chaque problème a sa solution. S'il n'y a pas de solution c'est qu'il n'y a pas de problème.
a+