Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: n-utz en 18 Octubre 2016, 23:21 pm



Título: [C] Manejo de cadenas
Publicado por: n-utz en 18 Octubre 2016, 23:21 pm
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?


Título: Re: [C] Manejo de cadenas
Publicado por: geeke en 19 Octubre 2016, 02:18 am
Un array solo lo puedes inicializar cuando lo declaras, en caso de no realizarlo, debes inicializar cada elemento manualmente.

Saludos.


Título: Re: [C] Manejo de cadenas
Publicado por: class_OpenGL en 19 Octubre 2016, 09:14 am
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:

Código
  1. #include <string.h>
  2. #include <stdio.h>
  3.  
  4. int main() {
  5.   char arreglo[20];
  6.  
  7.   strncpy(arreglo, "Cadena de ejemplo", 20);
  8.  
  9.   fprintf(stdout, "%s\n", arreglo);
  10.  
  11.   return 0;
  12. }

NOTA: El ejemplo que has dado
Código
  1. 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.