convertir arrayof caracteres a cadena

Estoy escribiendo código en lenguaje c

  1. char a[]={p,r,a,d,e,e,p}
    Quiero agregar '0/' al final para hacerlo cadena.
    ¿O hay algún método para hacer que la cadena sea diferente a agregar nulo al final?

  2. char *a=pradeep;
    Convierta esto a cadena agregando nulo al final

No puede cambiar el tamaño de la matriz a por lo que no puede agregarle un terminador nulo. Podría cambiar la statement a:

 char a[] = "pradeep"; 

lo que agregará implícitamente el terminador nulo. O:

 char a[] = { 'p', 'r', 'a', 'd', 'e', 'e', 'p', 0 }; 

pero la cadena literal es más simple y clara. La mayoría, si no todas, de las funciones de la biblioteca de cadenas C requieren una cadena terminada en nulo.

Su código no tiene ningún sentido, y no comstackrá.

Los literales de cadena se escriben mejor usando la syntax de cadena literal:

 const char *a = "pradeep"; 

Esto incluirá el carácter de terminación, haciendo a punto en una cadena C que puede usar con cualquiera de las funciones de procesamiento de cadenas, imprimir, etc.

 1). char a[]={'p','r','a','d','e','e','p','\0'}; 

Ahora es una matriz que contiene una cadena válida.

 2). char *a="pradeep"; 

Esto automáticamente agrega null al final para hacer una cadena válida.

 char *a="pradeep"; 

hace una cadena literal y agrega el carácter nulo al final.

Si realmente quieres declararlo usando una syntax similar a tu 1, puedes hacer esto:

 char a[] = {'p','r','a','d','e','e','p', 0}; 

Pero no hay razón para hacer esto.

EDITAR Respecto a la pregunta en comentario.

Si desea crear una cadena de n caracteres que recibe, puede hacer esto:

 char *a = malloc(n*sizeof(char)+1); 

Si siempre tiene 10 caracteres o menos, puede declararlo como

 char a[11]; 

A continuación, establezca cada a[i] con el valor recibido y el último con 0 .

También puede usar sprintf para hacer la concatenación, pero en cualquier caso, debe asegurarse de tener suficiente lugar asignado.

Si asigna una cadena literal a una matriz de caracteres, el comstackdor creará automáticamente la matriz correcta con el carácter de terminación '\0' al final:

 char a[] = "pradeep"; 

Lo anterior es lo mismo que escribir.

 char a[] = { 'p', 'r', 'a', 'd', 'e', 'e', 'p', '\0' }; 

Además, el uso de matrices es la forma recomendada, pero la primera alternativa anterior es equivalente a

 char *pa = "pradeep"; 

Sin embargo, con este último, ya no puede usar el operador sizeof , ya que devolverá el tamaño del puntero y no la longitud de la cadena. Otra nota sobre el operador sizeof , para los dos primeros ejemplos, devolverá el tamaño de la matriz y no la longitud de la cadena, es decir, sizeof para una matriz de caracteres incluirá el carácter de terminación.