Tengo una simple duda, suponganse que tengo la variable:
char palabra[20];
Como hago para asignarle una cadena manualmente, y con espacios?
Leí que esta era una opción:
palabra[20]={'H',' ','o'}
Pero me tira error, es algo sencillo, para realizar bajas logicas y cargar una cadena a mano. Ayuda?
Un array solo lo puedes inicializar cuando lo declaras, en caso de no realizarlo, debes inicializar cada elemento manualmente.
Saludos.
Como te han dicho, en el núcleo de C, si no inicializas un arreglo, después tendrías que darle un valor a cada elemento. Diciendo esto, en las librerías de C existe una función llamada strncpy declarada en string.h que te permite copiar byte a byte una cadena a otra de una forma muy cómoda. Ejemplo:
#include <string.h>
#include <stdio.h>
int main() {
char arreglo[20];
strncpy(arreglo, "Cadena de ejemplo", 20);
fprintf(stdout, "%s\n", arreglo);
return 0;
}
NOTA: El ejemplo que has dado
palabra[20]={'H',' ','o'}
no es válido pues las llaves indicando cada elemento solo vale para inicializar, es decir, no puedes asignarle valores a los elementos del arreglo fuera de la inizialización con las llaves.