Aide:probleme strcat
salut tout le monde,
je veus concatener a une chaine de caractère un ou plusieurs caractères ,selon une condition, qui se trouvent dans un tableau de caracteres.Mais comme vous pouver le dèduire que l'èlement a concatener a ma chaine n'est pas une constante mais il est deteminer a partir d'une condition au cours d'une doucle qui parcoure un tableau.
J'ai chercher partout mais je n'est pas trouver la syntaxe pour ajouter une chaine non constante a ma chiane initile.En effet j'ai trouver la syntaxe suivante qui ne me seve a rien:
strcat(char*,cont char*);
je compte sur votre aide merci.
je veus concatener a une chaine de caractère un ou plusieurs caractères ,selon une condition, qui se trouvent dans un tableau de caracteres.Mais comme vous pouver le dèduire que l'èlement a concatener a ma chaine n'est pas une constante mais il est deteminer a partir d'une condition au cours d'une doucle qui parcoure un tableau.
J'ai chercher partout mais je n'est pas trouver la syntaxe pour ajouter une chaine non constante a ma chiane initile.En effet j'ai trouver la syntaxe suivante qui ne me seve a rien:
strcat(char*,cont char*);
je compte sur votre aide merci.
3 réponses
Voici le prototype de strcat
dest n'est pas const car elle va évoluer (on va lui rajouter source au bout.
src par contre n'a aucune raison d'évoluer à l'intérieur de l'appel de strcat d'où le const.
Seulement voilà toi tu travailles avec deux char * ordinaires, et donc ton deuxième paramètre n'est pas de type const char *. Et c'est là que le cast intervient ;o)
Plus d'info : man strcat
strcat(char *dest, const char *suffixe);
dest n'est pas const car elle va évoluer (on va lui rajouter source au bout.
src par contre n'a aucune raison d'évoluer à l'intérieur de l'appel de strcat d'où le const.
Seulement voilà toi tu travailles avec deux char * ordinaires, et donc ton deuxième paramètre n'est pas de type const char *. Et c'est là que le cast intervient ;o)
strcat(dest,(const char *) suffixe);
Plus d'info : man strcat
salut Mamimando,
Je vous remerci pour votre aide,mais comme je suis encore débutant en language C je n'ai pas bien saisi ce que vous m'avez ecrit.
Est ce que vous voulez dire que je doit declarer ma chaine suffixe de cette maiere:
const char ch1[20];
C'est ce que j'ai fais mais j'ai encore des nouveux problemes!!!
Je vous remerci pour votre aide,mais comme je suis encore débutant en language C je n'ai pas bien saisi ce que vous m'avez ecrit.
Est ce que vous voulez dire que je doit declarer ma chaine suffixe de cette maiere:
const char ch1[20];
C'est ce que j'ai fais mais j'ai encore des nouveux problemes!!!
Tu peux me tutoyer ;)
Donne ...
#include <string.h>
int main(){
char prefixe[100]="Les tapirs aiment gambader";
const char suffixe[50]=" dans la prairie.";
strcat(prefixe,suffixe);
printf("prefixe = %s\n",prefixe);
return 0;
}
Donne ...
$ gcc plop.c $ ./a.out prefixe = Les tapirs aiment gambader dans la prairie.