如何在c中聚合文本?

时间:2014-06-04 11:20:03

标签: c linux

我如何汇总来自不同来源的文本,例如

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

1 个答案:

答案 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);