Bonjour, je dois écrire une fonction qui met une chaîne de caractère passée en argument en majuscule.
J'ai donc fait un calcul par rapport à la valeur ascii. Comme a -> 97 et A ->65, alors je fais - 32 à chaque fois. Mais ça ne fonctione pas.

voici la fonction
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
 
char    *upcase(char *str)
{
  int   i;
  char  *tp;
 
  i = 0;
  while (str[i] != '\0')
    {
      tp[i] = str[i] - 32;
      i++;
    }
    return (tp);
}
et le main

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
 
int     main()
{
  char  *p;
  char  *a;
 
  a = "hello";
  p = upcase(p);
  printf(p);
}
erreur : segmentation fault

Je ne vois pas trop où est le problème