#include <stdio.h>
#include <stdlib.h>
#include <string.h>
char **concancate_string(const char *name[], const char *subject[], size_t n) {
char **destin
= malloc(n
* sizeof *destin
); for (int i = 0; i < n; i++) {
destin
[i
] = malloc(strlen(name
[i
]) + strlen(subject
[i
]) + 3 + 1); // add space for " : " and terminating '\0' sprintf(destin
[i
], "%s : %s", name
[i
], subject
[i
]); }
return destin;
}
int main(void) {
char *name[] = {"michel", "sam", "roy", "romi"};
char *subject[] = {"physics", "math", "chemistry", "biology"};
char **foo = concancate_string(name, subject, 4);
for (int i
= 0; i
< 4; i
++) printf("%s\n", foo
[i
]); for (int i
= 0; i
< 4; i
++) free(foo
[i
]); return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDxzdGRsaWIuaD4KI2luY2x1ZGUgPHN0cmluZy5oPgoKY2hhciAqKmNvbmNhbmNhdGVfc3RyaW5nKGNvbnN0IGNoYXIgKm5hbWVbXSwgY29uc3QgY2hhciAqc3ViamVjdFtdLCBzaXplX3QgbikgewogICAgY2hhciAqKmRlc3RpbiA9IG1hbGxvYyhuICogc2l6ZW9mICpkZXN0aW4pOwogICAgZm9yIChpbnQgaSA9IDA7IGkgPCBuOyBpKyspIHsKICAgICAgICBkZXN0aW5baV0gPSBtYWxsb2Moc3RybGVuKG5hbWVbaV0pICsgc3RybGVuKHN1YmplY3RbaV0pICsgMyArIDEpOyAvLyBhZGQgc3BhY2UgZm9yICIgOiAiIGFuZCB0ZXJtaW5hdGluZyAnXDAnCiAgICAgICAgc3ByaW50ZihkZXN0aW5baV0sICIlcyA6ICVzIiwgbmFtZVtpXSwgc3ViamVjdFtpXSk7CiAgICB9CiAgICByZXR1cm4gZGVzdGluOwp9CgppbnQgbWFpbih2b2lkKSB7CiAgICBjaGFyICpuYW1lW10gPSB7Im1pY2hlbCIsICJzYW0iLCAicm95IiwgInJvbWkifTsKICAgIGNoYXIgKnN1YmplY3RbXSA9IHsicGh5c2ljcyIsICJtYXRoIiwgImNoZW1pc3RyeSIsICJiaW9sb2d5In07CiAgICBjaGFyICoqZm9vID0gY29uY2FuY2F0ZV9zdHJpbmcobmFtZSwgc3ViamVjdCwgNCk7CiAgICBmb3IgKGludCBpID0gMDsgaSA8IDQ7IGkrKykgcHJpbnRmKCIlc1xuIiwgZm9vW2ldKTsKICAgIGZvciAoaW50IGkgPSAwOyBpIDwgNDsgaSsrKSBmcmVlKGZvb1tpXSk7CiAgICBmcmVlKGZvbyk7CglyZXR1cm4gMDsKfQo=