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");

}


}
Empty

Empty

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:

#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

Yuri Aguiar
Responder

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar