Logo Hardware.com.br
Pedro Paulo ML
Pedro Paulo... Membro Junior Registrado
60 Mensagens 4 Curtidas

[Resolvido] Uso do 'if' para verificar a resposta de uma variável do tipo char

#1 Por Pedro Paulo... 14/04/2016 - 00:00
Olá, galera! Como o título do tópico já explica, eu queria saber como verificar a resposta de uma variável do tipo 'char'.
Segue o código:

#include <stdio.h>

char a;

main (){

printf("Digite uma letra entre 'a' e 'd': &quot;
scanf("%c",a);

if(a=='a'){
puts("a letra foi 'a'&quot;
}

if(a=='b'){
puts("a letra foi 'b'&quot;
}

if(a=='c'){
puts("a letra foi 'c'&quot;
}

if(a=='d'){
puts("a letra foi 'd'&quot;
}
}


Minha lógica foi essa, porém não funciona. Alguém teria uma solução para esse meu problema?
tpcvasco
tpcvasco General de Pijama Registrado
2.9K Mensagens 330 Curtidas
#2 Por tpcvasco
14/04/2016 - 08:51
1) scanf("%c", &a);
2) Use else if, ao invés de apenas if (com exceção do 1o if...) ou mesmo switch, é mais eficiente.
"Milhouse: - Médicos e bombeiros são heróis.
Bart Simpson: - Olha, as casas continuam pegando fogo e as pessoas continuam doentes. Os verdadeiros heróis são os Schwarzenegger's, os Stallone's, e, em menores proporções, os Vandame's..."
tpcvasco
tpcvasco General de Pijama Registrado
2.9K Mensagens 330 Curtidas
#6 Por tpcvasco
14/04/2016 - 14:20
#include <stdio.h>
main (){
char a;
printf("Digite uma letra entre 'a' e 'd': &quot;
scanf("%c", &a);

if(a=='a'){
puts("a letra foi 'a'&quot;
}
else if(a=='b'){
puts("a letra foi 'b'&quot;
}
else if(a=='c'){
puts("a letra foi 'c'&quot;
}
else if(a=='d'){
puts("a letra foi 'd'&quot;
}
}
"Milhouse: - Médicos e bombeiros são heróis.
Bart Simpson: - Olha, as casas continuam pegando fogo e as pessoas continuam doentes. Os verdadeiros heróis são os Schwarzenegger's, os Stallone's, e, em menores proporções, os Vandame's..."
lipman
lipman Tô em todas Registrado
567 Mensagens 216 Curtidas
#7 Por lipman
14/04/2016 - 16:11
Pedro Paulo ML disse:
Não entendi, man. Tem como mandar um código exemplo?

[code=C]
#include

int main ()
{
char a;

printf ("digite uma letra entre a e d");
scanf ("%s",&a);

switch (a){
case 'a':
printf ("a letra digitada foi a");
break;

case 'b':
printf ("a letra digitada foi b");
break;

case 'c':
printf ("a letra digitada foi c");
break;

case 'd':
printf ("a letra digitada foi d");
break;
}

return 0;
}
[/code]

T+
esquiloesperto
esquiloesper... Cyber Highlander Moderador
7.1K Mensagens 2.2K Curtidas
#9 Por esquiloesper...
14/04/2016 - 20:51
Muito boas as respostas.

Como instrução, aí vai outra maneira mais simples de fazer a mesma coisa:
[code=c]#include
using namespace std;

int main() {

char ltr;
cout << "Digite uma letra entre 'a' e 'd': ";
cin >> ltr;

if ( ltr >= 'a' && ltr <= 'd' )
cout << "A letra foi: " << ltr << endl;

return 0;
}[/code]
Só é difícil enquanto estiver oculto! cool.png
Use a pesquisa


rolleyes.png  Navegar é preciso, viver... também.  smile.png
Pedro Paulo ML
Pedro Paulo... Membro Junior Registrado
60 Mensagens 4 Curtidas
#15 Por Pedro Paulo...
21/04/2016 - 17:19
lipman disse:
poderia fazer assim:
printf ("%i.%i.%i-%i", var1, var2, var3, var4);
e colocar 4 variaveis 1 para cada 3 numeros...
entende?


Entendi. Mas nesse caso eu não queria utilizar essa formatação na hora de imprimir, mas sim na hora em que o usuário ainda está digitando.

Me veio esse pensamento ao estudar saída de dados, onde se tem as funções com barra invertida ("\"). Daí imaginei que tivesse alguma função para o cursor adiantar um caractere, mas não achei nada que falasse a respeito na internet.

Entendeu?
© 1999-2024 Hardware.com.br. Todos os direitos reservados.
Imagem do Modal