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.

3 réponses

  • Votes
  • Date
  • Date décroissante
  1. Modérateur
    Voici le prototype de 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
    1. 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!!!
      1. Modérateur
        Tu peux me tutoyer ;)
        #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.