Bonjour,
j'ai un problème de débutant et je m'en remets à vous
J'ai une fonction qui a pour but de retirer tous les retour chariot '\r' afin d'avoir une chaîne de caractère sur une seule ligne (je l'envoie par la suite en requête HTTP d'où mon besoin de ne pas avoir de '\r' dedans).
la fonction est la suivante :
Le code semble fonctionner car quand je demande l'affichage de temp, ceci est correct. Mon problème vient de la récupération de "temp".
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 char * format_paramCR(char * param) { int i=0; int lg=strlen(param); char * temp=(char *)calloc(lg, sizeof(char)); for (i=0;i<lg;i++) { if (param[i]=='\r') { temp[i]='z'; } else { temp[i]=param[i]; } } return temp; }
J'ai une variable "Desc" qui contient :
"salut
bonjour"
je voudrais donc obtenir : "salutbonjour" par exemple.
Quand je fais : "Desc = format_paramCR(Desc)" ca plante. Je peux le faire avec n'importe quel autre caractère à remplacer mais ça plante avec le CR.
Vous pouvez m'expliquer? Y a t il une solution pour que je puisse récupérer ma variable modifiée?
J'ai regardé la longueur de "temp" et de "Desc" est la même de même que la mémoire allouée pour les deux variables.
Merci
NB : j'essaye de remplacer \r par 'z' pour le moment afin de voir si cela fonctionne.
Partager