Título: Cadena de caracteres en C Publicado por: Jurott1 en 1 Mayo 2017, 02:28 am Buenas,
el problema que tengo es que necesito hacer una función que va a recibir una cadena de 50 caracteres pero solo debe aceptar números del 1 al 10, cualquier otra cadena ya sea un número más alto de 10, letras o una cadena vacía(que no se introduzca nada o con espacios) debe decir que da un error. Empecé el programa y conseguí que leyese de 0 al 9 pero lo hice un poco rudimentario entonces el que utilicé no puedo modificarlo para leer dos cifras ya que me basé en leer y guardar la diferencia entre leer el principio y final de la cadena y colocar un if para que se acomodase entre el 0 y el 9, pero no me sirve para cifras doble(en este caso solo el 10). Alguna idea ? Título: Re: Cadena de caracteres en C Publicado por: CalgaryCorpus en 1 Mayo 2017, 15:33 pm Publica el trozo de codigo relevante, muestra como lo probaste, que es lo que no funciona y como quieres que funcione.
Título: Re: Cadena de caracteres en C Publicado por: Jurott1 en 1 Mayo 2017, 16:33 pm Código
Título: Re: Cadena de caracteres en C Publicado por: MAFUS en 1 Mayo 2017, 17:19 pm La comprobación que haces para comprobar si la respuesta es mayor de 50 caracteres no es necesaria pues fgets nunca te dejará introducir más caracteres que los que les marcas.
Código: if((0<=p<=10 && isdigit(p)) Título: Re: Cadena de caracteres en C Publicado por: Jurott1 en 1 Mayo 2017, 18:41 pm El problema es que necesito saber si la cadena introducida por el usuario es mayor de 50 caracteres para decirle que la longitud es excesiva y pedirle que la vuelva a introducir.
Si hiciese la comprobación primero de si es un número con: Código
como haría para saber si ese número que me han dado es uno que esté entre el 0 y el 10 ? Título: Re: Cadena de caracteres en C Publicado por: CalgaryCorpus en 1 Mayo 2017, 18:54 pm Eso es lo que hace isdigit, es superfluo comprobarlo después.
Título: Re: Cadena de caracteres en C Publicado por: NOB2014 en 1 Mayo 2017, 19:19 pm Hola, Jurott1.
¿Esto te puede servir? Código
Saludos. Título: Re: Cadena de caracteres en C Publicado por: Jurott1 en 1 Mayo 2017, 23:37 pm Código
He hecho este codigo pero tengo un problema, ahora los parametros introducidos a la funcion los damos nosotros y el dato que el usuario nos de debe estar entre num1 y num2, el problema es cuando ponen una cadena del tipo "2ASKDASDL" que lee primero el 2 pero ignora el resto de la cadena (cosa que deberia dar error y mostrar mensaje de seleccion no valido). Título: Re: Cadena de caracteres en C Publicado por: MAFUS en 2 Mayo 2017, 01:33 am De seguro que has pensado en la solución pero la has descartado por demasiado complicada. Algo así cómo:
Citar Tengo que capturar una frase desde el teclado y debo mirar si todo son números. Si lo son tengo que ver si esos números están entre el máximo y mínimo que me da el usuario y si no dar un error. El enunciado de la idea te da la solución. 1. Capturas la frase 2. Te mueves carácter por carácter para ver si es un dígito (ya has usado isdigit). Si todo son dígitos continuas con el punto 3, sino marcas error y sales. 3. Transformas la cadena a un número. Con sscanf (las dos eses no son un error) lo conseguirás. 4. Compruebas que están entre los límites. |