[C con Clase] porque no me copila???

Davidson, Steven srd4121 en njit.edu
Lun Abr 22 02:44:43 CEST 2013


Hola Fanatidark,

2013/4/21 fanatidark <pandoras_box_789 en hotmail.com>

> tengo el siguiente codigo:
>

[CORTE]

        int busqueda(char *a,int b,char c)
>

Aquí está el error. No puedes implementar una función dentro de otra
función. Sí, puedes escribir un prototipo, pero no definirla
(implementarla), dentro de una función.

    {
>



>                 a=oracion;
>                 b=0;
>                 while((a<65)&&(*a!=c))
>

Esto es un error lógico. Estás comparando el puntero, 'a', a un entero. Lo
más seguro es que querías usar 'b'; es decir,

b < 65

                {
>                         b++;
>                         a++;
>                 }
>
>
Nuevamente, DEBES retornar un entero, porque así lo indicas en la función.

    }
>         cout<<"escribe una oracion"<<endl;
>         cin>>oracion;
>         cout<<"quieres buscar algun caracter?"<<endl;
>         cout<<"\n si=0 \n no=1"<<endl;
>         cin>>o;
>         while(o=0)
>

Esto es un error de programación. Te interesa usar el operador == que es de
comparación (de igualación), y no el operador = que es de asignación.

        {
>                 cout<<"que caracter quieres buscar?"endl;
>                 cin>>l;
>                 busqueda (*p,n,l);
>

Aquí tienes otro error. Pasas un 'char' para el primer parámetro, cuando la
función espera obtener un 'char *'. En este caso, simplemente pasa el
puntero, 'p'; esto es,

int nPos = busqueda( p, n, l );

                cout<<"\n su caracter es:  "<<l <<"y esta en la pocicion:
> "<<n<<endl;
>         }
>

Tienes un error de diseño en este bucle, ya que no hay forma de cambiar el
valor de 'o'. Esto es porque no vuelves a preguntar al usuario si quieres
continuar o no. En esencia, has creado un bucle infinito.

return 0;
>
> }
>
>

Espero que todo esto te oriente.

Steven
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.conclase.net/pipermail/cconclase_listas.conclase.net/attachments/20130421/c4046ef8/attachment.html>


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