Título: Arreglos de cadenas en C Publicado por: 024mc en 2 Junio 2020, 00:02 am Hola
Cómo puedo crear un arreglo para guardar nombres de personas con espacios, dados por teclado? Título: Re: Arreglos de cadenas en C Publicado por: K-YreX en 2 Junio 2020, 01:53 am Una cadena con espacios tiene la misma representación que una sin espacios ya que un espacio también es un char.
La cadena la puedes reservar de forma estática: Código O de forma dinámica: Código Recuerda que si lo haces de forma dinámica, luego tienes que liberar la memoria reservada: Código Para poder guardar espacios lo importante es usar la función fgets() en vez de scanf(). Código Esto guardará el ENTER que pulses al final como parte de la cadena (siempre que no hayas llegado a los SIZE-1 caracteres, ya que el último se reserva para el carácter de fin de cadena '\0'). Para eliminar el salto de línea producido por el ENTER: Código Título: Re: Arreglos de cadenas en C Publicado por: michellcrh en 2 Junio 2020, 03:17 am Y si quiero meter varias cadenas a un mismo arreglo?
Lo que sucede es que estoy intentando llenar un arreglo con datos que ya tengo en una estructura y en este caso solo necesito llenarlo con los nombres. Mas o menos tendría un opción en donde se pediría que nombres quiero meter al arreglo y conforme me los vaya ingresando la persona, se iría llenando el array. Título: Re: Arreglos de cadenas en C Publicado por: K-YreX en 2 Junio 2020, 03:35 am Ah vale, creo que te había entendido mal.
Si lo que quieres es un arreglo de cadenas y una cadena es un arreglo, lo que tienes al final es un arreglo de arreglos, es decir, un arreglo bidimensional o matriz. Si lo que intentas es meter diferentes nombres en la misma cadena y separarlos solo por un espacio, si los nombres son independientes, creo que sería mejor opción una matriz en la que cada fila es un nombre. Si por lo que sea quieres juntar todos los nombres en la misma cadena tendrías que copiar un nombre en la cadena final, insertar un espacio, copiar otro nombre,... No sé si es eso a lo que te refieres ni dónde tienes exactamente el problema. Si para crear la cadena, para introducir las otras cadenas, para introducir los espacios... :huh: :huh: Si no es eso, seguramente sea más sencillo si pones un ejemplo concreto de código. Título: Re: Arreglos de cadenas en C Publicado por: michellcrh en 2 Junio 2020, 03:44 am Te lo agradezco mucho, mas o menos esta es la funcion que quería hacer pero no logro que conforme me vaya digitando el numero del nombre que desea meter al arreglo, este se vaya llenando.
Código
Título: Re: Arreglos de cadenas en C Publicado por: ErahUnderground en 3 Junio 2020, 16:28 pm ¿Puede ser que no tengas declarada la variable 'numeroLibros'?
No sé si entiendo bien el ejercicio, pero si por ejemplo el número de libros de una persona está dentro de tu array de estructuras personas tendrías que hacer el for de la j así: Código
A parte de eso, date cuenta que estás seleccionando a una persona y después estás buscando una opción (que es la persona) e intentandola comparar con el número del libro. Título: Re: Arreglos de cadenas en C Publicado por: K-YreX en 3 Junio 2020, 19:51 pm Te lo agradezco mucho, mas o menos esta es la funcion que quería hacer pero no logro que conforme me vaya digitando el numero del nombre que desea meter al arreglo, este se vaya llenando. Código
Como te ha dicho @ErahUnderground, la variable numeroLibros que utilizas no aparece definida en ningún sitio. Me da la sensación de que querías usar numeroPersonas ya que tiene más sentido así que mi respuesta irá por esa línea. Daré por hecho que numeroPersonas contiene la cantidad de personas almacenadas en el array personas. Entonces te falta otro índice para ir guardando en arregloPersonas ya que si no usas otro índice guardarás a la persona 40 en la fila 40 y habrás desperdiciado las anteriores filas de arregloPersonas. El resultado sería: Código
Título: Re: Arreglos de cadenas en C Publicado por: michellcrh en 4 Junio 2020, 04:14 am Te lo agradezco mucho, me ayudó bastante.
|