duda: este validador no funciona probando me sale un "¡" como caracter.

sas
24 de Septiembre del 2008
umm...veran, este es mi codigo fuente. El asunto es que compila pero me aparece este caracter: ¡ a que se debe si no he invocado a ese caracter en el codigo???

#include <string.h>
#include <stdio.h>
#include <ctype.h>

/**Este metodo valida si el rut ingresado son solo numeros */
int main(){
/**He aqui la variable rut en formato char para hacer corroboraciones*/
char rut[7];
int i=0;





printf("Ingrese RUT: ");
scanf("%s", &rut[7]);
/*Para validar esto se ocupa la funcion isdigit*/

while(rut[i]!=7) {
if( isdigit(rut[i])==0){
printf("%c, %dn", rut[i], isdigit(rut[i]));
printf("RUT INVALIDO, ingrese otro: ");
scanf("%s", &rut[7]);
}
else
i++;

}


return 0;
getchar();
}


eprieto20
24 de Septiembre del 2008
La lectura de cadena la debes hacer scanf("%s", &rut);
porque si no solo estas poniendo lo ke hay en la posicion 7 y esa posicion esta destinada solo para el valor nulo en una cadena. Y tu ciclo while realmente no se que es lo que estes buscando hacer con el, de esa manera como lo tienes estas evaluando lo que hay en la posicion i evaluando si es diferente de 7 el valor del arreglo en esa posicion. Y tambien seria bueno saber donde dices que te aparece el ¡ ya que corri tu programa y no me aparece eso.