bonsoir a tous!

voila, j'ai code une fonction me permettant de convertir un nombre decimal en un nombre binaire; evidemmenty ca ne fonctionne du moins a moitie.
avant de retourner la valeur convertit ca fonctionne mais lorsque je fait un return pour l'affichez dans le main, c'as m'affiche du bordel....
voici le code :

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
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
 
char	*convert_dec_to_bin(int  nb)
{
  int	i;
  char	str[9];
  int	j;
 
  for (i = 128, j = 0; j <= 7; i/= 2, j++)
    {
      if (nb - i >= 0)
	{
	  str[j] = '1';
	  nb = nb - i;
	}
      else
	str[j] = '0';
    }
  str[j] = '\0';
  printf("%s\n", str);
  return(str);
}
 
char	*convert_bin_to_dec(char *str)
{
  int	i;
  int	j;
  int	nb;
  char	c;
 
  nb = 0;
  for (j = strlen(str) - 1, i = 1; i != 128; i *= 2, j--)
    {
      if (str[j] == '1')
	nb = nb + i;
    }
  c = nb;
  printf("%c", c);
  return (c);
}
 
int	main()
{
  char	*binaire;
 
  binaire = convert_dec_to_bin(97);
  printf("%s", binaire);
  return(0);
}
resultat a l'ecran :
01100001 -------------------> ok
Ðè¿¿Hè¿¿Ù¦º½ø~½½Tè---------------->apres le return