Generation

generate functionThu, 12 Dec 2024

for (int i = 0; i < j; i++) { if (libro.categoria == categorias[i].categoria) { categorias[i].stock += libro.ejemplares; encontrada = 1; break; } } if (!encontrada) { strcpy(categorias[j].categoria, libro.categoria); categorias[j].stock = libro.ejemplares; j++; } } como hacer para que categorias[j].categoria sume conel contenido de libro.ejemplar

El problema es que estás intentando copiar el contenido de `libro.ejemplares` en `categorias[j].categoria`, lo que no es correcto porque `libro.ejemplares` es un entero y `categorias[j].categoria` es un string. Si deseas sumar el contenido de `libro.ejemplares` a `categorias[j].stock`, debes hacerlo de la siguiente manera: ```c categorias[j].stock += libro.ejemplares; ``` Si deseas concatenar el contenido de `libro.ejemplares` con `categorias[j].categoria`, debes hacerlo de la siguiente manera: ```c char buffer[100]; sprintf(buffer, "%d", libro.ejemplares); strcat(categorias[j].categoria, buffer); ``` Ten en cuenta que `strcat` requiere que el destino tenga suficiente espacio para almacenar el contenido del origen. En este caso, asumimos que `categorias[j].categoria` tiene suficiente espacio. Si deseas hacer esto de manera más segura, puedes usar `snprintf` en lugar de `sprintf` para evitar posibles buffer overflow: ```c char buffer[100]; snprintf(buffer, sizeof(buffer), "%d", libro.ejemplares); strcat(categorias[j].categoria, buffer); ``` Recuerda que `snprintf` devuelve el número de caracteres escritos en el buffer, por lo que puedes verificar si el buffer se llenó completamente: ```c char buffer[100]; int len = snprintf(buffer, sizeof(buffer), "%d", libro.ejemplares); if (len >= sizeof(buffer)) { // Buffer overflow } else { strcat(categorias[j].categoria, buffer); } ```

Questions about programming?Chat with your personal AI assistant