我如何汇总来自不同来源的文本,例如
char * a , * b,* c, *d;
a = argv[1] ;
b = "something";
c = "another text";
d=b&a&c; //this what i want to know
printf("%s",d);
输出:
somethingTESTanother text
答案 0 :(得分:1)
首先,您需要获取一些内存来保存生成的字符串。
您可以使用malloc()
分配足够的内存;或者(更容易但不缩放)将d
定义为具有足够空间的数组(例如char d[8000];
)。
然后,在您有结果空间后,您可以strcpy()
和strcat()
;或sprintf()
(如果使用C99更喜欢snprintf()
);或许多其他方式。
char *a, *b, *c, *d;
a = argv[1];
b = "something";
c = "another text";
int n = snprintf(NULL, 0, "%s%s%s", a, b, c);
d = malloc(n + 1);
if (!d) /* error */ exit(EXIT_FAILURE);
snprintf(d, n + 1, "%s%s%s", a, b, c); //this what i want to know
printf("%s\n",d);
free(d);