Q:

Como paso una vector a otro vector en posición especifica tipo char C

Elabore un programa que lea n cédulas y las coloque en un arreglo usando como índice los dos últimos dígitos del asiento. Determine la cantidad de cédulas que no se pudieron almacenar asumiendo una capacidad de 20.
Ejemplo: "La cédula" 9-752-1211 
El indice es 11
La cédula la guardo como tipo char en un vector.
Tengo un segundo vector donde debo guardar en la indice 11 del vector la cédula 9-752-1211
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
main(){
    char cedula[15],indice[5],veccedula[20],u;
    int i,cant,k,a,b,cont;
    printf("Ingrese Cantidad de personas: ");scanf("%i",&cant);
    cont=0;
    for(i=0;i<cant;i++){
        printf("Ingrese cedula#%i: ",i+1);scanf("%s",cedula);
        k=strlen(cedula);
        indice[1]=cedula[k-1];  //ultima posición
        indice[0]=cedula[k-2]; //penultima
        indice[2]='\0'; // fin de cadena
        a=atoi(indice);//Transformo el indice a entero
        if(a<=20){
            veccedula[a]=cedula;
        }
    }
}

No se que estoy haciendo mal pero no puedo pasar lo del vector cedula al indice del vector veccedula.

A:

Esto:
veccedula[a]=cedula;

en realidad lo que hace es intentar copiar en veccedula[a] la dirección en memoria de la variable cedula.
Para copiar cadenas terminadas en 0, se utiliza la función strcpy( ), de la cabecera <string.h>. Dicha función copia incluido el 0 final:
if( a <= 20 ) {
  strcpy( &( veccedula[a] ), cedula );
}

Si no estás seguro de si termina en 0, o por algún motivo no quieres copiar la cadena entera, sino solamente cierta cantidad de bytes, se usaría strncpy( ):
if( a <= 20 ) {
  strncpy( &( veccedula[a] ), cedula, 2 );
}

Pero en este caso, strncpy( ) copiaría exclusivamente el número de bytes pasados como 3er argumento. Si el 0 final no está incluido, tendríamos que ponerlo nosotros a mano:
if( a <= 20 ) {
  strncpy( &( veccedula[a] ), cedula, 2 );
  veccedula[a+2] = '\x00';
}

