[C] Manejo de cadenas

Iniciado por n-utz, 18 Octubre 2016, 23:21 PM

0 Miembros y 1 Visitante están viendo este tema.

n-utz

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?

geeke

Un array solo lo puedes inicializar cuando lo declaras, en caso de no realizarlo, debes inicializar cada elemento manualmente.

Saludos.

class_OpenGL

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.

Programador aficionado. Me quiero centrar en programar videojuegos. La API que uso para crearlos es OpenGL