Multiples concaténations de chaînes de caractères

Contenu du snippet

/*
   Concatène plusieurs chaînes de caractères passées 
   en paramètre de la fonction vers dest. 
   Le dernier paramètre DOIT être un 0 pour indiquer à la 
  fonction de ne pas essayer de continuer plus loin.
 
   Exemple d'utilisation:
   char dest[256];
   char test1[] = "Bonjour les amis. ";
   char test2[] = "Comment allez vous? ";
 
   multistrcat(dest, test1, test2, "Bien?", 0);
 
   dest contiendra:
   "Bonjour les amis. Comment allez vous? Bien?"
 */
 
 char *multistrcat (char *dest, ...)
 {
   va_list ap;
 
   if(!dest) return 0; // <- À retirer dans un code sûr
 
   va_start(ap, dest);
 
   while(1) {
     char *c = va_arg(ap, char*);
     if(!c) break; 
     if(!*c) continue; // <- À retirer dans un code sûr
     do *dest++ = *c++; while(*c);
   }
 
   va_end(ap);
   *dest = 0;
 
   return dest; // Retour sur 0 de fin de chaîne
 }

Compatibilité : C

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.