[C con Clase] Problema con la funcion strcmp con punteros

Fernando Cervera fernandogcervera en gmail.com
Mar Sep 4 04:59:20 CEST 2012


Tienes por lo menos 2 errores en la función buscarNombre() :
1. strcmp recibe punteros a strings:  strcmp( &var, punt[i].nombre)
2. la variable var debería ser un arreglo: char var[30]

2012/9/3 roberto ches <rocho06 en gmail.com>

> Buenas a todos, y gracias antes de nada tanto por la pagina como por esta
> magnifica lista.
>
> Mi problema es que estoy intentando hacer uno de los ejercicios del
> tutorial, pero al usar la función "strcmp" para comparar dos arrays me da
> error. Y no consigo entender el por que de ese error.
>
> Os dejo el código a ver si me podéis echar una mano.
> -----------------------
> #include <iostream>
> #include <cstring>
>
>
> using namespace std;
>
> struct agenda{
>
>     char nombre[30];
>     string telefono;
>
> }actual[10];
>
> void printMenu();
> void IntContacto(agenda * x, int dir);
> void buscarTelefono(agenda *x);
> void buscarNombre(agenda *x);
>
> int main(){
>
>     int opcion = 0, numero = 0;
>     agenda * punt = &actual[0];
>
>     do
>     {
>
>         printMenu();
>
>         cin >> opcion;
>
>         switch(opcion)
>         {
>             case 1:
>             IntContacto(punt, numero);
>             numero++;
>             break;
>
>             case 2:
>             buscarTelefono(punt);
>             numero++;
>             break;
>
>             case 3:
>             buscarNombre(punt);
>             numero++;
>             break;
>         }
>
>         cout << endl;
>
>     }while(opcion != 4);
>
>     cout << actual[numero-1].nombre << endl;
>
> }
>
> void printMenu(){
>
>     cout << "<=========================>" << endl;
>     cout << "<= Bienvenido a su agenda=>" << endl;
>     cout << "<=========================>" << endl;
>     cout << endl;
>     cout << "<=  Introduce la opcion  =>" << endl;
>     cout << endl;
>     cout << "= 1) Intro contacto" << endl;
>     cout << "= 2) Buscar por telefono" << endl;
>     cout << "= 3) Buscar por nombre" << endl;
>     cout << "= 4) Salir" << endl;
> }
>
> void IntContacto(agenda * x, int dir){
>
>     agenda *punt = &x[dir];
>
>     cout << "Introduzca el nombre: " << endl;
>     cin >> punt->nombre;
>
>     cout << "Introduzca el telefono" << endl;
>     cin >> punt->telefono;
>
> }
>
> void buscarNombre(agenda *x){
>
>     agenda *punt = &x[0];
>     char var;
>
>     cout << "Escribe el nombre del contacto" << endl;
>     cin >> var;
>
>     for(int i=0; i<10; i++){
>
>         if(strcmp(var, *punt[i].nombre)==0){
>             cout << punt->telefono << endl;
>         }
>         //else{cout << "no se no se";}
>     }
> }
>
> void buscarTelefono(agenda *x){
>
>
> }
>
> Un saludo a todos.
>
> _______________________________________________
> Lista de correo Cconclase Cconclase en listas.conclase.net
> http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net
> Bajas: http://listas.conclase.net/index.php?gid=2&mnu=FAQ
>
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.conclase.net/pipermail/cconclase_listas.conclase.net/attachments/20120903/cca66e1e/attachment.html>


Más información sobre la lista de distribución Cconclase