error while zeroing a string

1

I'm in a problem in my code where when I zero the string and add new words it just stores the first part

codefollowsbelow:

printf("Digite o nome do seu laboratorio:\n");

gets(nome_lab);

printf("O nome do laboratorio eh: %s.\n", nome_lab);

printf("Digite 1 para continuar e 2 para alterar o nome.\n");

scanf("%d", &x);

if(x == 1) printf("Vamos continuar");
if(x == 2) {
    printf("Digite o nome do laboratorio.\n");
    strcpy(nome_lab,"");
    scanf("%s", nome_lab);
    };
if(x!= 1 && x!= 2){
printf("Digite um numero valido.\n");
printf("Digite 1 para continuar e 2 para alterar o nome.\n");
while(x!= 1 || x!= 2){ scanf("%d", &x);
printf("Digite um numero valido.\n");
printf("Digite 1 para continuar e 2 para alterar o nome.\n");
 }
};

printf("%s", nome_lab);
    
asked by anonymous 22.07.2017 / 23:30

1 answer

2

This is not a mistake! The problem is in:

scanf("%s", nome_lab);

You are using %s , it only saves up to the first whitespace, ie if you have strings with whitespace, it is best not to use it.

Try this way:

gets(nome_lab);
    
23.07.2017 / 00:03