elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Los 10 CVE más críticos (peligrosos) de 2020


  Mostrar Temas
Páginas: 1 [2]
11  Programación / Programación C/C++ / C - Problema con scanf y string en: 15 Abril 2018, 20:21 pm
Hola gente, estoy haciendo una funcion que pide string (caracteres limitados). Tengo una funcion en la que al scanf le asigne %[^\n] para que tome los espacios del string. Tambien quiero tener otra funcion que pida string hasta que encuentre un espacio, por lo que cambie la mascara por %s. Encontre un problema grave en esta segunda funcion:

Código
  1. void getRangedSimStr(char* vec,char message[],char eMessage[],int minChars, int maxChars)
  2. {
  3.    char palabra[1000];
  4.    printf("%s", message);
  5.    setbuf(stdin,NULL);
  6.    scanf("%s",palabra);
  7.    setbuf(stdin,NULL);
  8.    while(strlen(palabra) > maxChars || strlen(palabra) < minChars)
  9.    {
  10.        printf("%s",eMessage);
  11.        scanf("%s",palabra);
  12.        setbuf(stdin,NULL);
  13.    }
  14.    strcpy(vec,  palabra);
  15. }

Al momento de ser ejecutada en un bucle for de 3 iteraciones y guardado el string en una matriz con este codigo:

Código
  1.  
  2.    char matriz[CANT][CHARS];
  3.    char primeraLetra;
  4.    for(int i = 0; i< CANT; i++)
  5.    {
  6.        printf("Ingrese nombre %d: ",i+1);
  7.        getRangedSimStr(matriz[i],"","Nombre invalido, reingrese: ",1,49);
  8.        strlwr(matriz[i]);
  9.        primeraLetra = matriz[i][0];
  10.        primeraLetra = toupper(primeraLetra);
  11.        matriz[i][0] = primeraLetra;
  12.  
  13.    }
  14.    for(int i = 0; i < CANT; i++)
  15.    {
  16.        printf("%s\n",matriz[i]);
  17.    }
  18.  

Si yo escribo "SPORE ES BUENO" el bucle for no me pide la segunda y la tercera vez que ingrese string. Muestra la matriz con SPORE en indice 0, ES en el indice 1 y BUENO en el indice 2.
Miren:

Páginas: 1 [2]
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines