Foros del Web » Programación » C/C++ »

Buscar char en vector [C++]

Estas en el tema de Buscar char en vector [C++] en el foro de C/C++ en Foros del Web. Hola! tengo que buscar un nombre (se lo pido al usuario) en un vector.. (para despues eliminar) pero no se como buscar.. intente algo asi ...
  #1 (permalink)  
Antiguo 08/04/2009, 22:21
 
Fecha de Ingreso: octubre-2008
Mensajes: 17
Antigüedad: 5 años, 5 meses
Puntos: 0
Buscar char en vector [C++]

Hola! tengo que buscar un nombre (se lo pido al usuario) en un vector..
(para despues eliminar)

pero no se como buscar.. intente algo asi pero no me funciona
a ver si alguien me guia

Código:
cout<<"Ingrese nombre alumno a eliminar:"<<endl;;
cin>>nom;
n=n-1;
vector[n].buscar(nom,vector[n]);   //no se como llamar a la funcion
}
funcion..
Código:
int buscar(char nombus, char vector[])
{
             int aux,i;
             aux=1;
             for(i=0;i<4;i++)
             {
                 if (nombus==vector[i])
                 {
                    aux=0;
                    cout<<i;
                    return i;
                    break;
                  }
                
             }
}
  #2 (permalink)  
Antiguo 09/04/2009, 01:39
 
Fecha de Ingreso: marzo-2009
Mensajes: 16
Antigüedad: 5 años, 1 mes
Puntos: 0
Respuesta: Buscar char en vector [C++]

Tendrías que postear también las declaraciones de variables, sobre todo de vector, porque el fallo depende de lo que sean. En principio, si "vector" no es un objeto y es un simple vector de char tipo C, simplemente con hacer esto ya lo tienes:

Código:
cout<<"Ingrese nombre alumno a eliminar:"<<endl;;
cin>>nom;
n=n-1;
buscar(nom,vector);
Lo de pasarle el índice a vector en la llamada también es un poco raro, si no es un vector de múltiples cadenas estaría mal.:

Luego, para comparar las cadenas creo que ni en C++ se podía usar ==. Yo usaría la función strstr, que te devuelve un puntero a la primera ocurrencia de la cadena que estás buscando. Simplemente quedaría así:

Código:
char *buscar(char nombus, char vector[])
{
     return strstr(vector,nombus);
}
Si en lugar de un puntero quieres que te devuelva un índice, hazlo así:

Código:
int buscar(char nombus, char vector[])
{
     char *res=strstr(vector,nombus),*iter=vector;
     int indice=0;
     if(res==NULL) return -1;
     while(res!=iter) {
          indice++;
          iter=iter+1;
     }
     return indice;
}
  #3 (permalink)  
Antiguo 09/04/2009, 07:16
 
Fecha de Ingreso: octubre-2008
Mensajes: 17
Antigüedad: 5 años, 5 meses
Puntos: 0
Respuesta: Buscar char en vector [C++]

el vector esta declarado asi..

Código:
alumno vector[4];
antes del main ()

la clase es asi..

Código:
class alumno{
private:
        char nombre[30];
        float nota1, nota2,nota3, promedio;
y tiene los metodos..

Código:
void ingresar()
void calcular_promedio()
void imprimir()
ademas las variables en el main son estas..
Código:
char nom[30]; //que es el que tengo que buscar
float n1, n2, n3;
me confundi porque en las otras funciones las he llamado asi..
por ejemplo..

Código:
vector[i].imprimir();
y sale perfecto
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 13:33.
SEO by vBSEO 3.3.2