Título: Como leer una cadena de caracteres vacia Publicado por: josueroddy en 19 Octubre 2021, 23:24 pm Buenas amigos del foro, no estoy seguro si el titulo de mi pregunta es correcta pero procedo a explicar
Soy nuevo en la programación y me mandaron un proyecto de hacer un inventario en C con un limite de 10 artículos, ya tengo hecho una parte, mi problema surge cuando quiero ver el inventario, el programa si lee las opciones ingresadas por el usuario, pero si solo ingreso un elemento, al momento de ver el inventario aparece ese elemento pero también sale los otros que aun no se les ha asignado valor representados con caracteres aleatorios Quisiera saber si hay una manera de condicionar la cadena a que no muestre nada si el usuario no lo ha escrito Código
Puse solo el case 1 y case 4 para verificar como estaba funcionando por si acaso Cualquier sugerencia sera bien recibida, gracias Título: Re: Como leer una cadena de caracteres vacia Publicado por: K-YreX en 23 Octubre 2021, 00:41 am La respuesta a este problema es sencilla: tener una variable que almacene siempre el número de elementos insertados.
Cuando se tiene una colección de datos (array o similares) hay dos conceptos parecidos pero diferentes: size y capacity.
Es un problema común cuando se recorre una colección, utilizar la condición (i < capacity) en vez de (i < size). En tu caso concreto parece que la variable j corresponde a capacity y la variable p corresponde a size (excepto cuando haces p=0 al mostrar). Corrige eso un poco y lo tendrás (usa siempre que puedas nombres descriptivos, esto no es necesario para los contadores de un for: i, j, k...; pero sí siempre que esas variables las uses para más cosas) PD: No le encuentro sentido a la función memset() que utilizas. Por otro lado te dejo algunos consejos extra:
Código Así si en un momento dado quieres cambiar alguno de esos valores, sólo tendrás que cambiarlo en un sitio y no en todas las líneas donde lo usas. Se puede mejorar alguna cosa más pero con esos dos puntos creo que ya se notará una mejora considerable. Suerte :-X |