Fonction avec comme retour une chaîne de caractères
j'ai une petite fonction qui devrait me renvoyer une chaine de caractere. Or il ne me renvoie que des truc incohérents. Je sais qu'il faut utiliser des pointeurs de char mais dans ce cas, il ne me renvoie que la premiere lettre!!!
voila mon code:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41
| char *jourdelasemaine(time_t date)
{
struct tm when;
short unsigned int numjour;
char libjour[8],*libelle;
when = *localtime(&date);
numjour=when.tm_wday;
switch (numjour)
{
case 0 : strcpy(libjour, "dimanche");
break;
case 1 : strcpy(libjour, "lundi");
break;
case 2 : strcpy(libjour, "mardi");
break;
case 3 : strcpy(libjour, "mercredi");
break;
case 4 : strcpy(libjour, "jeudi");
break;
case 5 : strcpy(libjour, "vendredi");
break;
case 6 : strcpy(libjour, "samedi");
break;
default: strcpy(libjour, "erreur");
break;
}
libelle=&libjour;
return (&libjour);
}
void main( void )
{
time_t now;//, result;
char libjour[8],*libel;
libel=malloc(8);
time( &now );
libel=jourdelasemaine(now);
&libjour = libel;
printf("\n nous sommes un %s \n",libjour); |