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:
void getRangedSimStr(char* vec,char message[],char eMessage[],int minChars, int maxChars)
{
char palabra[1000];
while(strlen(palabra
) > maxChars
|| strlen(palabra
) < minChars
) {
}
}
Al momento de ser ejecutada en un bucle for de 3 iteraciones y guardado el string en una matriz con este codigo:
char matriz[CANT][CHARS];
char primeraLetra;
for(int i = 0; i< CANT; i++)
{
printf("Ingrese nombre %d: ",i
+1); getRangedSimStr(matriz[i],"","Nombre invalido, reingrese: ",1,49);
strlwr(matriz[i]);
primeraLetra = matriz[i][0];
primeraLetra
= toupper(primeraLetra
); matriz[i][0] = primeraLetra;
}
for(int i = 0; i < CANT; i++)
{
}
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: