- #include <stdio.h>
-
#include <stdlib.h>
-
#include <stdarg.h>
-
#include <string.h>
-
-
-
char *myStrconcat(const char *str1, ...);
-
-
int
-
main(void)
-
{
-
char *r = myStrconcat("Hello", " my", " world\n", NULL);
-
printf(r);
-
free(r);
-
-
return 0;
-
}
-
-
char *
-
myStrconcat(const char *str1, ...)
-
{
-
size_t l;
-
va_list args;
-
char *s;
-
char *concat;
-
char *ptr;
-
-
if (!str1)
-
return NULL;
-
-
l = 1 + strlen(str1);
-
va_start(args, str1);
-
s = va_arg(args, char *);
-
while (s) {
-
l += strlen(s);
-
s = va_arg(args, char *);
-
}
-
va_end(args);
-
-
concat = (char *)malloc(sizeof (char) * l);
-
ptr = concat;
-
-
ptr = stpcpy(ptr, str1);
-
va_start(args, str1);
-
s = va_arg(args, char *);
-
while (s) {
-
ptr = stpcpy(ptr, s);
-
s = va_arg(args, char *);
-
}
-
va_end(args);
-
-
return concat;
- }
- 方便多个未知字符串连接