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 :
Mon algo est pourtant ultra simple (mais pas du tout optimisé !). Pouvez-vous m'expliquer mon erreur s'il vous plait ? Merci.
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; }
Partager