como usar if/else com strings? fica aparecendo o print do else quando digito
17/01/2022
0
#include <stdio.h>
#include <stdlib.h>
//função principal do programa
void main(){
char var[100];
printf("ola, gostaria de comecar a diversao?");
scanf("%s", &var);
printf("%s \n", var);
if(var == ''sim''){
printf("otimo vamos comecar");
}else{
printf("erro");
}
}
#include <stdlib.h>
//função principal do programa
void main(){
char var[100];
printf("ola, gostaria de comecar a diversao?");
scanf("%s", &var);
printf("%s \n", var);
if(var == ''sim''){
printf("otimo vamos comecar");
}else{
printf("erro");
}
}
Empty
Curtir tópico
+ 0
Responder
Post mais votado
17/01/2022
Fala meu amigo.
Então... na linguagem C não é legal comparar Strings com == ou !=, já que temos funções prontas para esses tipos de situações.
A função strcmp() ela compara Strings e te retorna um valor do tipo int, que pode ser armazenada em uma variável para que você possa utilizar em outras ocasiões sem precisar chamar a função mais de uma vez, que por sua vez, funciona da seguinte forma:
if ( valor de retorno < 0 ) { string1 é menor que string2 }
if ( valor de retorno > 0 ) { string2 é menor que string1 }
if ( valor de retorno == 0 ) { string1 é igual a string2 }
Pra você entender melhor eu montei em cima do seu código uma solução. Ficaria assim:
Espero que tenha ficado claro... abraços!
Então... na linguagem C não é legal comparar Strings com == ou !=, já que temos funções prontas para esses tipos de situações.
A função strcmp() ela compara Strings e te retorna um valor do tipo int, que pode ser armazenada em uma variável para que você possa utilizar em outras ocasiões sem precisar chamar a função mais de uma vez, que por sua vez, funciona da seguinte forma:
if ( valor de retorno < 0 ) { string1 é menor que string2 }
if ( valor de retorno > 0 ) { string2 é menor que string1 }
if ( valor de retorno == 0 ) { string1 é igual a string2 }
Pra você entender melhor eu montei em cima do seu código uma solução. Ficaria assim:
#include <stdio.h> #include <string.h> int main(){ char var[20]; int compara; printf("Ola, gostaria de comecar a diversao?\\n"); scanf("%s", &var); printf("%s\\n", var); compara = strcmp(var, "sim"); //Função para comparar o valor digitado com a string SIM if(compara == 0){ printf("\\nOtimo vamos comecar"); }else{ printf("\\nErro..."); } return 0; }
Espero que tenha ficado claro... abraços!
Yuri Aguiar
Responder
Clique aqui para fazer login e interagir na Comunidade :)