Ejercicio 3

Ejercicio 3

de Diego Cruz Fagián -
Número de respuestas: 4

Estoy teniendo un error en la compilación del programa que se me hace bastante incoherente. Adjunto imagen:


No entiendo porque siendo que mi variable "letraR" está declarada como tipo char, me salta en la compilación que es de tipo int. Desde ya, muchas gracias.

Adjunto Captura de pantalla de 2022-03-05 00-18-44.png
En respuesta a Diego Cruz Fagián

Re: Ejercicio 3

de Lucas Fernandez Corbo -

Buenas, te comento lo que para mi esta fallando, puede ser otra cosa pero espero poder ayudarte en algo.

Necesitarías poner: scanf("%c", &letraR);

Ya que para scanf(), necesitas pasar un puntero a char, sino no tiene forma de guardar el carácter.

Digamos que letraR es 0 antes del scanf. Con el código que tenes de momento, lo que estas haciendo es scanf("%c", 0);

Lo que querrías seria algo así como:

scanf("%c", algún-lugar-para-poner-un-char);

ósea &letraR 

Y también paso a comentarte que viendo el código así medio por arriba, creería que hay muchas cosas que no te van a funcionar como queres, por ejemplo:

scanf("%c",frase[i]); estaría necesitando lo mismo que lo de arriba, poner scanf("%c",&frase[i]); 

y también supongo que lo que queres es que se almacene un string, por lo tanto en vez de %c deberías poner %s, porque sino solamente te almacenaría el primer carácter, digamos que ingresas la palabra 'hola' , &frase[i] solamente contendría la letra h.

Luego también comentarte que vos lo que estas haciendo al poner char *frase[i] con i=100, es crear un arreglo de tamaño 100 de punteros a char. Por lo tanto lo que haces con scanf("%s",&frase[i]); es: leer el string y hacer que el "valor" al que apunta el puntero hacia char de la celda 100 del arreglo frase, apunte a ese string ingresado. Ósea que vas a tener un arreglo con 99 espacios indefinidos y solo ese string guardado en la celda 100.

Por lo tanto strlen() se va a portar medio raro o directamente te va a tirar segmentation fault al aplicarlo a esa estructura.

En respuesta a Lucas Fernandez Corbo

Re: Ejercicio 3

de Diego Cruz Fagián -
Para dejarte un comentario extra. Me funciono usar el strlen, si te interesa te puedo pasar el código para que veas cómo quedó, podemos comparar código y ver como optimizar nuestros programas. Desde ya te agradezco banda la ayuda!
En respuesta a Diego Cruz Fagián

Re: Ejercicio 3

de Ignacio Facello Marcotte -
Técnicamente un char es un entero sin signo de un byte. Pero el compilador no debería confundirse eso, es raro. Igual el error viene por el lado de que scanf espera un puntero, y le estás pasando un char. Tenés que pasarle la referencia (puntero) a letraR: &letraR