Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Vitor Augusto

[Resolvido] Problemas com STRCMP

Recommended Posts

cara, no código do primeiro post os únicos problemas são:

1-no strcmp as strings tem q estar entre "":

if (strcmp(oper,"soma") ==0);

2-você trocou o divisao por mult

 

o código corrigido rodou aqui:

 

#include <iostream.h>
#include <conio.h>
#include <stdio.h>

int main()
{
char soma[5],divisao[9],sub[9],mult[9],oper[9];
float n,n1,res;



cout<<"Insira o 1* numero\n";
cin>>n;
cout<<"Insira o 2* numero\n";
cin>>n1;
cout<<"Qual a operacao deseja fazer?\n";
cin>>oper;
if (strcmp(oper,"soma") ==0)
{
res=n+n1;
cout<<"\nO resutado e \n"<<res;
}
else
if (strcmp(oper,"sub") ==0)
{
res=n-n1;
cout<<"\nO resutado e \n"<<res;
}
else
if (strcmp(oper,"mult") ==0)
{
res=n*n1;
cout<<"\nO resutado e \n"<<res;
}
else
if (strcmp(oper,"divisao") ==0)
{
res=n/n1;
cout<<"\nO resutado e \n"<<res;
}


getch();

}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você está comparando oper com sujeira ou com NULL, com ctz o programa n vai exibir nada.

na verdade, ele nao comparou oper com nada. em

if (strcmp(oper,soma) ==0)

 

ele comparou strcmp, e nao oper, com zero.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Do "C++ In A Nutshell":

 

Each C header can be used with its C name, in which case the declarations in the header are explicitly introduced into the global namespace. For example, <cstdio> declares std::printf, and stdio.h does the same, but adds "using std::printf" to bring the name printf into the global namespace.The use of C headers is deprecated.

 

Nem compila aqui se mantiver o .h.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Desculpe pela falta de respostas pois estava ocupado com auto-escola,mas voltando ao assunto,

na verdade, ele nao comparou oper com nada. em

ele comparou strcmp, e nao oper, com zero.

o meu problema foi a falta de aspas na String,muito obrigado,algoritmo corrigido

 

#include <iostream.h>
#include <conio.h>
#include <stdio.h>
int main()
{
char soma[5],divisao[9],sub[9],mult[9],oper[9];
float n,n1,res;
cout<<"Insira o 1* numero\n";cin>>n;
cout<<"Insira o 2* numero\n";
cin>>n1;
cout<<"Qual a operacao deseja fazer?\n";
cin>>oper;if (strcmp(oper,"soma") ==0)
{
res=n+n1;
cout<<"\nO resutado e \n"<<res;
}
else
if (strcmp(oper,"sub") ==0)
{
res=n-n1;
cout<<"\nO resutado e \n"<<res;
}
else
if (strcmp(oper,"mult") ==0)
{
res=n*n1;
cout<<"\nO resutado e \n"<<res;
}
else
if (strcmp(oper,"divisao") ==0)
{
res=n/n1;
cout<<"\nO resutado e \n"<<res;
}

getch();

}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Dá proxima vz, poste detalhes dos input's!

 

[]s

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.