home *** CD-ROM | disk | FTP | other *** search
/ C/C++ Users Group Library 1996 July / C-C++ Users Group Library July 1996.iso / listings / v_12_02 / allison / concat.c < prev    next >
Encoding:
C/C++ Source or Header  |  1993-11-30  |  687 b   |  38 lines

  1. LISTING 6 - Concatenates a variable number of strings
  2. /* concat.c */
  3. #include <stdarg.h>
  4. #include <stdio.h>
  5. #include <string.h>
  6.  
  7. char * concat(char *s,...)
  8. {
  9.     va_list strings;
  10.     char *p;
  11.  
  12.     /* Copy first string */
  13.     va_start(strings,s);
  14.     if ((p = va_arg(strings,char *)) == NULL)
  15.     {
  16.         *s = '\0';
  17.         return s;
  18.     }
  19.     else
  20.         strcpy(s,p);
  21.  
  22.     /* Append others */
  23.     while ((p = va_arg(strings,char *)) != NULL)
  24.         strcat(s,p);
  25.     return s;
  26. }
  27.  
  28. main()
  29. {
  30.     char buf[128];
  31.     concat(buf,"Sweet","Talker","Betty","Crocker",NULL);
  32.     printf("\"%s\"\n",buf);
  33.     return 0;
  34. }
  35.  
  36. /* Output:
  37. "SweetTalkerBettyCrocker"
  38.