Dev - C++ - problemas con funciones creadas por uno mismo y punteros

 
Vista:
sin imagen de perfil
Val: 22
Ha disminuido su posición en 3 puestos en Dev - C++ (en relación al último mes)
Gráfica de Dev - C++

problemas con funciones creadas por uno mismo y punteros

Publicado por Santiago (8 intervenciones) el 09/10/2020 21:32:11
hola, debo hacer un programa que, en base a una cadena ingresada en el main, a traves de la funcion: [b]int verificaDigitos (char *, int *), muestre cantidad de digitos en la cadena y la longitud de la misma. La funcion recibe un parametro puntero a char para recibir la cadena y otro a int que devuelve la cantidad de digitos en la cadena. La funcion devuelve un entero con la cantidad de digitos. Pude hacer esto:
ejercicio-7-prac-complementaria
Se compila y todo, pero a la hora de mostrar la cantidad de digitos siempre da 0 y no me doy cuenta que hice mal.
Si alguien me puede ayudar, se lo agradeceria.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

problemas con funciones creadas por uno mismo y punteros

Publicado por Nacho (181 intervenciones) el 09/10/2020 23:06:39
No pongáis un dibujo del código, poned el texto.

LLamas al return antes de ir comprobando si es un dígito, con lo que esa parte nunca se ejecuta.
Con y=y+1 lo que haces es incrementar el puntero y, y lo que quieres incrementar es el contenido del puntero.

1
2
3
4
5
6
7
8
9
10
11
int verifDig(char* x, int* y)
{
    int i = 0, res;
    res = strlen(x);
    while (x[i] != '\0')
    {
        if (isdigit(x[i])) (*y)++;
        i++;
    }
    return res;
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
3
Comentar
sin imagen de perfil
Val: 22
Ha disminuido su posición en 3 puestos en Dev - C++ (en relación al último mes)
Gráfica de Dev - C++

problemas con funciones creadas por uno mismo y punteros

Publicado por Santiago (8 intervenciones) el 09/10/2020 23:52:23
muchas gracias capoo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Rodrigo
Val: 1.755
Plata
Ha mantenido su posición en Dev - C++ (en relación al último mes)
Gráfica de Dev - C++

problemas con funciones creadas por uno mismo y punteros

Publicado por Rodrigo (539 intervenciones) el 09/10/2020 23:12:27
por el return al final de la funcion, no en el medio de ella.
No necesitas llamar strlen si vas a recorrer el string hasta que se acabe (usa i para obtener el largo).

Tienes que desreferenciar el puntero "y", sino estas modificando el puntero, no lo apuntado,
osea haz
1
*y = *y + 1
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil
Val: 22
Ha disminuido su posición en 3 puestos en Dev - C++ (en relación al último mes)
Gráfica de Dev - C++

problemas con funciones creadas por uno mismo y punteros

Publicado por Santiago (8 intervenciones) el 09/10/2020 23:52:48
muchas gracias jefee
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar