Bonjour, je désire me faire une fonction qui "supprime" tous les espaces contenus dans la string. Donc si j'ai une string "1 2 3 4 5" ma sortie doit être "12345". Mais j'ai un segmentation fault et je ne comprends pas pourquoi. Je vous envoie ma 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
15
16
17
18
19
20
21
22
23
24
25
26
27
28
 
#include<stdlib.h>
#include<stdio.h>
#include<ctype.h>
#include<string.h>
 
void DeleteAllSpaces(char * s)
{
  unsigned int i,j;
  for(i=0;i<strlen(s);++i)
  {
    if(isspace(s[i]))
    {
      for(j=i;j<strlen(s);++j)
        s[j]=s[j+1];
      s[strlen(s)-1]='\0';
    }
  }
}
 
int main()
{
  char * s="1 2 3 4 5 6";
  DeleteAllSpaces(s);
  printf("s =%s\n",s);
 
  return 0;
}
Mon algo est pourtant ultra simple (mais pas du tout optimisé !). Pouvez-vous m'expliquer mon erreur s'il vous plait ? Merci.