asmv
Messages postés5Date d'inscriptionvendredi 11 avril 2003StatutMembreDernière intervention22 juin 2003
-
14 juin 2003 à 17:42
fredcl
Messages postés547Date d'inscriptionmercredi 8 janvier 2003StatutMembreDernière intervention 7 octobre 2007
-
15 juin 2003 à 09:20
//a partir d'elements de tableau 'int' transformes en 'char'
//essai de concatenation qui ne fonctionne pas pourquoi ?
//merci pour votre aide
#include <stdio.h>
#include <string.h>
int main()
{
// premier tableau en 'int'
int ti[2] = {12, 5};
printf("controle de 'ti[]' \n");
printf("ti[0]:%d\n", ti[0]);
printf("ti[1]:%d\n\n",ti[1]);
// transformation des 'int' en 'char'
char tc[2];
tc[0] = (char)ti[0];
tc[1] = (char)ti[1];
printf("controle de'tc[]' \n");
printf("tc[0]:%d\n", tc[0]);
printf("tc[1]:%d\n\n", tc[1]);
// a partir d'ici ca coinse
char ens[10];
strcpy(ens, tc[0]);
strcat(ens,"-");
strcat(ens, tc[1]);
printf(" L'ensemble est : %s", ens);
BruNews
Messages postés21040Date d'inscriptionjeudi 23 janvier 2003StatutModérateurDernière intervention21 août 2019 14 juin 2003 à 17:51
char tc[2];
tc[0] = (char)ti[0]; ???
tc[1] = (char)ti[1]; ???
C'est quoi le BUT ?
tu recup les 8 bits bas de chaque int dans tc[0] et tc[1], ensuite ???
BruNews, ciao...
cs_JCDjcd
Messages postés1138Date d'inscriptionmardi 10 juin 2003StatutMembreDernière intervention25 janvier 20094 14 juin 2003 à 18:26
Ton probleme (je pense) est que 'tc[0]' est un caractere et non une chaine de caractere.Il faut une '\\0' apres le caractere car 'strcpy' copie tous les caracteres j'usqu'au '\\0', or tu n'en as pas => BUG !
cs_JCDjcd
Messages postés1138Date d'inscriptionmardi 10 juin 2003StatutMembreDernière intervention25 janvier 20094 14 juin 2003 à 18:33
'strcat' et 'strcpy' prennent en argument des chaines de caracteres i.e. une suite de caracteres de terminant pas un '\\0' !
Or tu leur passes un caractere !!!
=> BUG !