Test Foro de elhacker.net SMF 2.1

Programación => Programación C/C++ => Mensaje iniciado por: josueroddy en 19 Octubre 2021, 23:24 PM

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


#include <stdio.h>
#include <string.h>


int main(){
    int p, j;
    int producto[10];
char items [10] [100];
float precio[10];
int cantidad [10];
int opc, mostrar=0, id=0;


j=10;

do{
for (p=0;p<j;p++){

printf("Bienvenido al inventario\n");
printf("Escoga de las siguientes opciones\n");
printf("1. Crear elemento\n2. Eliminar elemento\n3. Modificar elemento\n4. Ver inventario\n5. Cerrar\n");
scanf("%d", &opc);

switch(opc){

case 1:
system("cls");
printf("Inserte nombre del producto %d\n", p+1, producto[p]);
scanf("%s", &items[p]);

printf("Inserte precio del producto %d\n", p+1, producto[p]);
scanf("%f", &precio[p]);
printf("Inserte la cantidad del producto %d\n", p+1, producto[p]);
scanf("%d", &cantidad[p]);

printf("¿Desea ir al menu?\n1. Si\n2. No\n");
scanf("%d", &opc);

switch (opc){
case 1:
system("cls");
mostrar=0;

break;

case 2:
system("cls");
printf("Gracias por usar nuestro programa\n");
mostrar=1;

return 0;

break;

default:
system("cls");
printf("No existe esta opcion");
mostrar=1;

return 0;
break;

}

break;

case 4:

for (p=0;p<j;p++){

memset(items, 0, 100);


printf("%d.\t%s\t%.2f\t%d\t\n",p+1, items[p], precio[p], cantidad[p]);


mostrar=0;

}

break;

}

}

}while (mostrar==0);

return 0;
}


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.