Ton exemple ne correspond pas à l'énoncé. Dans ta question tu parles d'une chaine de caractères et d'un tableau d'entiers. Or dans ton exemple il est question de deux chaines de caractères, ce qui n'est pas du tout la même chose. 
Un tableau d'entiers, c'est quelque chose du genre :
int tab_int[] = { 0 , 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 } ;
... alors qu'un tableau de caractères (chaine de caractères) c'est plutôt (les deux lignes sont équivalentes) :
1 2
| char tab_char[] = "0123456789" ;
char tab_char[] = { '0' , '1' , '2' , '3' , '4' , '5' , '6' , '7' , '8' , '9' , '\0' } ; |
"tab_int" et "tab_char" peuvent sembler être la même chose à première vue, mais ce sont bien deux choses différentes.
S'il s'agit effectivement de deux chaines de caractères, la fonction "strcat" est ton amie : http://man.developpez.com/man3/strncat.3.php. Comme l'indique bien la page, la chaine de destination doit être suffisamment grande pour accueillir le résultat (sinon ça déborde et ça provoque des bugs voire un crash).
S'il s'agit d'une chaine et d'un tableau d'entiers, le terme de "concaténer" n'a plus vraiment de sens. Il faudra donc apporter des précisions sur la question.
Partager