Bien gracias a ustedes e podido hacer algo! :D
Ahora el otro problema es el siguiente
De la forma en que lo hice si pongo esto: {(a+b)-[a+b}], aún me seguirá diciendo que esta bien por que no reconoce el orden, pero y como hago eso? Segun alguien postió algo de expresiones regulares, pero en realidad no se como utilizarlo se la teoria de lo que hacen pero no se ni en que parte ponerlo.
Código:
Código:
// (), [] y {}
#include <iostream>
#include <iomanip>
#include <string>
using namespace std;
int main()
{
int count = 0;
char expr[45];
int par = 0;
int par2 = 0;
int cor = 0;
int cor2 = 0;
int llav = 0;
int llav2 = 0;
cout<<"Entre tu expresion algebraica: ";
cin>>expr;
int longitud=strlen(expr);
for(int N=0; N<longitud; N++)
{
if(expr[N]=='(')
{
par++;
}
else if(expr[N]== ')' )
{
par2++;
}
if (expr[N] == '[')
{
cor++;
}
else if (expr[N] == ']')
{
cor2++;
}
if (expr[N] == '{')
{
llav++;
}
else if (expr[N] == '}')
{
llav2++;
}
}
if ( (par==par2)>0 )
{ cout<<"\nNo hubo errores de parentesis\n"; }
else if ( par == 0 && par2 == 0 )
{ cout<<"\nNo se introdujo parentesis\n"; }
else
{ cout<<"Error en la expresion\n"; }
if ( (cor==cor2)>0 )
{ cout<<"\nNo hubo errores de corchetes\n"; }
else if ( cor == 0 && cor2 == 0 )
{ cout<<"\nNo se introdujo corchetes\n"; }
else
{ cout<<"Error en la expresion\n"; }
if ( (llav==llav2)>0 )
{ cout<<"\nNo hubo errores de llaves\n"; }
else if ( llav == 0 && llav2 == 0 )
{ cout<<"\nNo se introdujo llaves\n"; }
else
cout<<"Error en la expresion\n";
return 0;
}