Como modificar campos struct en C ?

Hola, llevo varias horas intentando modificar el contenido de la variable descripcion de la estructura Proveedores, he usado la funcion strcpy para copiar lo que me meten por teclado y guardarlo en la variable descripcion pero no hay manera.
La idea es que , la nueva descripcion que me metan "machaque" la que habia anteriormente para luego poder hacer un printf y ver que ha cambiado.
Hay que usar punteros a estructuras para hacer esto? si es así me podriais explicar por encima un poco como va , ya que nunca lo he echo, gracias.


Mi estructura es esta:
#include<stdio.h>
#include<stdlib.h>
#include<string.h>

#define MAX 100

int punter=0;

struct Proveedores{
char codigo[30];
char descripcion[30];
}entradaProve[MAX];

void menu_proveedor(void);


Menu proveedores:

void menu_proveedor(void){

        char sel1;
        int ct;
   
        do{
        printf("______________________________Menu de proveedores______________________________\n\n\n");
        printf("\t\t\t1. Alta proveedor\n");
        printf("\t\t\t2. Modificar proveedor\n");
        printf("\t\t\t3. Baja proveedor\n");
        printf("\t\t\t4. Imprimir proveedores\n");
        printf("\t\t\t5. Salir\n\n");     
       
        do{
        sel1=getchar();
    }while((sel1<'1' || sel1>'5'));
        switch(sel1){
            case '1'://Alta proveedor                                                                 
            break;

            case '2'://Modificar proveedor
                printf("Numero d'entrada proveedor per modificar?\n");
                getchar();
                scanf("%d",&sel1);
                if (sel1<0||sel1>=punter){
                printf("Numero d'entrada erroneo\n");
                }
                NetejaBuffer();
                printf("La descripcio del proveedor modificada es:\n");
                fgets(entradaProve[punter].descripcion,30,stdin);               
            break;
           
            case '3'://Baja proveedor                         
            break;
           
            case '4': //Imprimir proveedores               
            break;
           
            case '5'://Volver al menu principal     
            case 27:
            return;
    };
    }while(1);
   
   
return;
}
Si tu problema viene por los espacios en la cadena que introduce el usuario, mírate las instrucciones gets y puts.
1 respuesta