[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