Der einfachste Weg ist wohl sprintf()
1 | char outputstring[128];
|
2 |
|
3 | char *Array_1[] = {
|
4 | "Überschrift",
|
5 | "Textzeile",
|
6 | "Textzeile"
|
7 | };
|
8 |
|
9 | char *Array_2[] = {
|
10 | "1",
|
11 | "2",
|
12 | "3"
|
13 | };
|
14 |
|
15 | int a = 0;
|
16 | int b = 0;
|
17 |
|
18 | sprintf(outputstring, "%s %s", Array_1[a], Array_2[b]);
|
Danach steht in outputstring "Überschrift 1".
Die Leerzeichen zwischen den Strings braucht man dann auch nicht in
Array_2 abzulegen.
Alternative wäre strcpy und strcat:
1 | strcpy(outputstring, Array_1[a]);
|
2 | strcat(outputstring, " ");
|
3 | strcat(outputstring, Array_2[b]);
|
Sicherheitsbewusste Programmierer verwenden "snprintf", "strncpy" und
"strncat".
Wenn einem die Maximallänge der Strings bekannt ist, outputstring
genügend Platz hat, und die Strings keine Variablen sind, die von
"aussen" änderbar sind, kann man aber auch die einfache Variante der
Funktionen benutzen.
Ansonsten wäre das ein klassischer Angriffspunkt (buffer overflow
vulnerability).