Concat d'un caractere a la fin d'un string
Bibbou
-
Bibbou -
Bibbou -
Bonsoir,
J'essaye de faire une librairie pour un projet que je dois faire.
J'essaye de couper un char* selon un séparateur (un 'split' qui doit être codé dans a peu prés tous les langages).
Voici ce que j'ai écris :
Cela me renvoie une erreur de segmentation.
Pourrait-t-on m'éclairer là dessus?
Merci d'avance.
PS : les arguments envoyés a split sont par exemple:
char* s : "Afghanistan,2010,Total,29121286,14907404,14213882,
n : 128,
sep : ','
J'essaye de faire une librairie pour un projet que je dois faire.
J'essaye de couper un char* selon un séparateur (un 'split' qui doit être codé dans a peu prés tous les langages).
Voici ce que j'ai écris :
int count(char* s, int n ,char l){
int i = 0, res = 0;
for (i = 0; i<n ; i++) if (s[i] == l) res++;
return res;
}
char** split(char* s, int n ,char sep){
int i=0,j=0,m=count(s,n,sep)+1;
char temp = ' ';
char** res = malloc(m);
for (i = 0; i<m ; i++) res[i] = malloc(n);
for (i = 0; s[i+1] != '\n' ; i++){
if (s[i] != sep){
strcat(res[j],&(s[i]));
}
else if (s[i] != sep) {
j++;
printf(" ");
}
}
return res;
}
Cela me renvoie une erreur de segmentation.
Pourrait-t-on m'éclairer là dessus?
Merci d'avance.
PS : les arguments envoyés a split sont par exemple:
char* s : "Afghanistan,2010,Total,29121286,14907404,14213882,
n : 128,
sep : ','
A voir également:
- Concat d'un caractere a la fin d'un string
- Fin des zfe - Guide
- Caractère spéciaux - Guide
- Caractère ascii - Guide
- Caractere speciaux - Guide
- Caractere vide - Guide
1 réponse
J'ai essayé de réécrire moi même strcat mais même problème :
void strAppend(char** s, char c){
int i=0;
while (*s[i] != '\0'){
i++;
}
*s[i]=c;
s[i+1]='\0';
}
int count(char*, int,char);
char** split(char* s, int n ,char sep){
int i=0,j=0,m=count(s,n,sep)+1;
char temp = ' ';
char** res = malloc(m);
for (i = 0; i<m ; i++) res[i] = malloc(n);
for (i = 0; s[i+1] != '\n' ; i++){
if (s[i] != sep){
strAppend(&res[j],s[i]);
}
else if (s[i] != sep) {
j++;
}
}
return res;
}