Esta no es la mejor de las soluciones, porque hace recorridos dobles , breaks y engendros así, pero a estas horas.....
Código C++:
Ver originalstring evaluar (string cadena, string referencia);
int main()
{
cout<<evaluar("12345","54321")<<endl;
cout<<evaluar("abbcd","accbd")<<endl;
return 0;
}
string evaluar (string cadena, string referencia)
{
int acertados=0;
int aproximaciones=0;
//asumimos que las cadenas tienen el mismo tamaño
for (int i=0;i<cadena.size();i++)
{
if (cadena[i]==referencia[i])
{
acertados++;
}
else
{
for (int j=0;j<cadena.size();j++)
{
if (cadena[i]==referencia[j])
{
aproximaciones++;
break;
}
}
}
}
stringstream iss;
iss<<acertados<<"A, "<<aproximaciones<<"a";
return iss.str();
}
(creo que funciona)
Saludos!