Guias_y_practica/Archivos/main.c
/**
 * @brief Lee una linea de longitud indefinida
 * @pre El archivo viene abierto en modo lectura
 * @param  *f: Archivo abierto en modo texto
 * @retval Cadena de caracteres leida
 */
@brief Lee una linea de longitud indefinida
@pre El archivo viene abierto en modo lectura
@param  *f: Archivo abierto en modo texto
@retval Cadena de caracteres leida
@brief Lee una linea de longitud indefinida @pre El archivo viene abierto en modo lectura @param * f : Archivo abierto en modo texto @retval Cadena de caracteres leida
char *readline_lower(FILE *f, bool lower_cases) {
	int c;
	char *l_ptr = NULL;
	size_t n = 0;
	while ((c = fgetc(f)) != EOF) {
		char *c_aux = realloc(l_ptr, sizeof(char) * (n + 1) + 1);
		if (c_aux == NULL) {
			if (l_ptr != NULL)
				free(l_ptr);
			return NULL;
		}
		l_ptr = c_aux;
		l_ptr[n++] = lower_cases ? tolower(c) : c;
		l_ptr[n] = '\0';
		if (c == '\n')    
			return l_ptr;
	}
	return l_ptr;
}
char * readline_lower ( FILE * f , bool lower_cases ) { int c ; char * l_ptr = NULL ; size_t n = 0 ; while ( ( c = fgetc ( f ) ) != EOF ) { char * c_aux = realloc ( l_ptr , sizeof ( char ) * ( n + 1 ) + 1 ) ; if ( c_aux == NULL ) { if ( l_ptr != NULL ) free ( l_ptr ) ; return NULL ; } l_ptr = c_aux ; l_ptr [ n ++ ] = lower_cases ? tolower ( c ) : c ; l_ptr [ n ] = ' \0 ' ; if ( c == ' \n ' ) return l_ptr ; } return l_ptr ; }
@brief Lee una linea de longitud indefinida
 @pre El archivo viene abierto en modo lectura
 @param  *f: Archivo abierto en modo texto
 @retval Cadena de caracteres leida
@brief Lee una linea de longitud indefinida @pre El archivo viene abierto en modo lectura @param * f : Archivo abierto en modo texto @retval Cadena de caracteres leida
// Lo pongo aca porque si no, no incluye en la cadena el \n de la linea