Bjour tous,

j'ai un souci avec une fonction type strpos de php que j'ai faite en C. Elle doit retourner la position d'un caractère dans une chaine. La voici :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
int substrlen (char *chaine, char *car)
{
 return (strstr (chaine, car) - chaine);
}
Je dois en fait retrouver la position d'un retour chariot dans une chaine pour modifier le caractère (en fait, un header http que je dois couper en lignes). Jusque là, pas de problème, ma fonction me retrouve bien la position de mon caractère. Sauf que, quand j'essaye de modifier mon caractère, je me prends une erreur de segmentation en pleine figure (aïeuhhh, ça picote). Ca ressemble à ça :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
 
char *data = mon_header_http ;
int i = substrlen (data, "\n");
strncpy (data+i, "\0", 1) ;
Quand je change la valeur de i pour mettre un bête chiffre, ça fonctionne.

J'arrive pas du tout où ça bloque. Quelqu'un de plus expérimenté voir mon erreur ? J'espère que je suis clair

Merci d'avance

Enjoy

The lsd