Una solucion a tu problema podría ser :
Código C++:
Ver original#include <iostream>
using namespace std;
//COPYRIGHT (C) JESUS MARTIN BERLANGA 2011 TODOS LOS DERECHOS RESERVADOS
//SOLO SE PERMITE EXHIBIR ESTE TEXTO MENCIONANDO AL AUTOR Y ESTA LICENCIA
int comparar (char *s1, char *s2);
struct Persona{
char Nombree[60];
int Numeroo;
}PNumero[10];
int opcion;
int bucle1;
int bucle2;
char nombrebs[60];
int telefonobs;
int comprobar;
int main()
{
cout << "Programa dessarollado por Jesus Martin Berlanga." << endl;
cout << "COPYRIGHT (C) JESUS MARTIN BERLANGA 2011 TODOS LOS DERECHOS RESERVADOS" << endl;
cout << "SOLO SE PERMITE EXHIBIR ESTE TEXTO MENCIONANDO AL AUTOR Y ESTA LICENCIA" << endl;
inicio:
cout << endl;
cout << "Introduce el nombre y telefono de la primera persona separados por un espacio para la agenda" << endl;
cin >> PNumero[0].Nombree >> PNumero[0].Numeroo;
cout << "Introduce el nombre y telefono de la segunda persona separados por un espacio para la agenda" << endl;
cin >> PNumero[1].Nombree >> PNumero[1].Numeroo;
cout << "Introduce el nombre y telefono de la tercera persona separados por un espacio para la agenda" << endl;
cin >> PNumero[2].Nombree >> PNumero[2].Numeroo;
cout << "Introduce el nombre y telefono de la cuarta persona separados por un espacio para la agenda" << endl;
cin >> PNumero[3].Nombree >> PNumero[3].Numeroo;
cout << "Introduce el nombre y telefono de la quinta persona separados por un espacio para la agenda" << endl;
cin >> PNumero[4].Nombree >> PNumero[4].Numeroo;
cout << "Introduce el nombre y telefono de la sexta persona separados por un espacio para la agenda" << endl;
cin >> PNumero[5].Nombree >> PNumero[5].Numeroo;
cout << "Introduce el nombre y telefono de la septima persona separados por un espacio para la agenda" << endl;
cin >> PNumero[6].Nombree >> PNumero[6].Numeroo;
cout << "Introduce el nombre y telefono de la octaba persona separados por un espacio para la agenda" << endl;
cin >> PNumero[7].Nombree >> PNumero[7].Numeroo;
cout << "Introduce el nombre y telefono de la novena persona separados por un espacio para la agenda" << endl;
cin >> PNumero[8].Nombree >> PNumero[8].Numeroo;
cout << "Introduce el nombre y telefono de la decima persona separados por un espacio para la agenda" << endl;
cin >> PNumero[9].Nombree >> PNumero[9].Numeroo;
Menu:
cout << "Menu:" << endl;
cout << "1) Buscar por nombre" << endl;
cout << "2) Buscar por número de teléfono" << endl;
cout << "3) Salir" << endl;
cout << "Pulsa una opción(escribe 1, 2 o 3):" << endl;
cin >> opcion;
bucle1 = 0;
switch(opcion)
{
case 1:
cout << "Escribe nombre a buscar:" << endl;
cin >> nombrebs;
while(bucle1 < 10)
{
if(comparar (& nombrebs[0], & PNumero[bucle1].Nombree[0]))
{
cout << "Telefono del nombre " << nombrebs << "es " << PNumero[bucle1].Numeroo << endl;
}
bucle1++;
}
break;
case 2:
cout << "Escribe telefono a buscar:" << endl;
cin >> telefonobs;
while(bucle2 < 10)
{
if(telefonobs == PNumero[bucle2].Numeroo)
{
cout << "Nombre del telefono " << telefonobs << " es " << PNumero[bucle1].Nombree << endl;
}
bucle2++;
}
break;
case 3:
goto final;
break;
default:
goto Menu;
}
cout << "Introduce 1 para reiniciar y otro caracter y/o numero para salir:" << endl;
cin >> comprobar;
if(comprobar == 1)
{
goto inicio;
}
else
{
goto final;
}
final:
return 0;
}
int comparar (char *s1, char *s2){
int i = 0;
while (*(s1 + i) != '\0' || *(s2 + i) != '\0'){
if (*(s1 + i) != *(s2 + i)){
return 0;
}
i++;
}
if (*(s1 + i) != *(s2 + i)){
return 0;
}
return 1;
}
Lo que hice fue añadir una función aparte que se llama "comparar" y compara todos los elementos del array nombre de las estructuras.
Un saludo!!