[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