Cita de: naderST en 9 Noviembre 2012, 01:54 AM
Si estas programando en "C++" por qué no usas la clase String? Otra cosa, no puedes comparar dos strings de C de esta manera:Código (c) [Seleccionar]buscar != estudiante[k]
Debes usar strcmp() de la librería string.h. No se que otros errores puedas tener, pero soluciona eso primero.
Hice el cambio y utilice la función que me indicaste pero ahora siempre me evalua a 0.
Código [Seleccionar]
/*
PROBLEMAS Y ERRORES:
1.- El ciclo FOR,para almacenar nombre y apellidos, me tira un numero mas
*/
#include <iostream>
#include <cstdio>
#include <cstring>
using namespace std;
int main()
{
const int MAX = 100; //Tamaños maximos para filas y columnas del arreglo
const int TAM = 50;
//Variables iniciadas para evitar valores basura
char estudiante[MAX][TAM] = {" "};
char buscar[TAM] = {" "};
int tamFila = 0;
cout << "Este programa le permite capturar el nombre y apellido."
<< "\nde estudiantes esperando en fila, y tambien verifica si un \n"
<< "nombre introducido por teclado esta en la lista."
<< "\n_______________________________________________________\n\n\n";
cout << "\t\t::Caja No. 511::\n";
cout << "\nIntroduzca tamano de la fila:";
cin >> tamFila;
cout << "\nNombre y apellido estudiantes en fila.\n";
for ( int j = 0; j <= tamFila; j++)
{
gets(estudiante[j]);
}
cout << "\n\n\n\t<BUSQUEDA>\n "
<< "\tPara resultados positivos introduzca\n el nombre tal como lo escribio.\n\n"
<< "Nombre y apellido estudiante: ";
cin.getline(buscar, sizeof(buscar));
for(int k = 0; k <= tamFila; k++)
{
int valorCmp = strcmp(estudiante[k], buscar);
if ( valorCmp == 0)
{
cout << "=> El que se fue de la fila pierde su silla, " << buscar;
break;
}else{
cout << "=> "<< buscar << " por favor pase a pagar.";
break;
}
}
cout <<"\n\n Personas en fila\n";
for ( int j = 0; j <= tamFila; j++)
{
if (j != 0)
{
cout << j << ".- " <<estudiante[j] << endl;
}
}
return 0;
}