Título: [Ayuda] Ejercicio simple Publicado por: Cracky7 en 12 Febrero 2012, 15:39 pm Mi enunciado es:
Citar Crear una función que reciba una cadena y una letra, y devuelva la cantidad de veces que dicha letra aparece en la cadena. Y hasta ahora tengo: Código
Por más que lo intento, se cierra siempre después de introducir mi cadena, y el debugger dice que el problema está en la línea: Código Título: Re: [Ayuda] Ejercicio simple Publicado por: eleon en 12 Febrero 2012, 16:10 pm Claro porque estás intentando pasar una cadena por valor. Las matrices/tablas/vectores/cadenas (son lo mismo) no pueden pasarse a una función directamente, es como si intentaras hacer esto:
Código
No se puede asignar una tabla a otra sino que hay que hacerlo elemento a elemento. Para pasar una tabla a una función debes usar paso por referencia. Saludos. Título: Re: [Ayuda] Ejercicio simple Publicado por: durasno en 12 Febrero 2012, 16:54 pm Hola! todos las cadenas pasan por referencia ya que el el nombre de una cadena es un puntero al inicio del arreglo.
El error esta en strcmp. Esta funcion recibe dos punteros a char (char *) y vos le estas pasando como primer argumento un char. Para contar las veces que aparece la letra solo basta con poner if (c==cadena)) b++; Título: Re: [Ayuda] Ejercicio simple Publicado por: Cracky7 en 12 Febrero 2012, 20:27 pm Vaya, hombre.
Eso lo tenía puesto antes, lo cambié por strcmp y, como seguía sin funcionar, no lo volví a poner. Algo debo de haber cambiado y no me acuerdo qué. De todas maneras ya funciona. ¡Gracias, durasno! Título: Re: [Ayuda] Ejercicio simple Publicado por: Anastacio en 15 Febrero 2012, 20:09 pm A que te refieres con elemento por elemento???
Título: Re: [Ayuda] Ejercicio simple Publicado por: armizh en 15 Febrero 2012, 20:29 pm No debiese ser:
Código ?? Ademas es redundante hacer esto: Código y luego Código Tal vez esto podria resultar... Código
Saludos Título: Re: [Ayuda] Ejercicio simple Publicado por: rir3760 en 16 Febrero 2012, 01:17 am Dos detalles a considerar ...
El primero es solo para reducción del código fuente. Ya que se deben verificar cada uno de los caracteres de la cadena no es necesario el uso de la función "strlen", basta con verificar si el carácter es el indicador del final de la cadena (el '\0'): Código
El segundo es un error en el comentario: Código Eso no funcionara ya que el valor almacenado en la variable "c" se tomaría como una dirección en memoria, tampoco vale como segundo argumento "cadena[ i ]" ya que es un carácter. Un saludo |