The first constraint is convex, and can be handled without use of logical constraints or introduction of binary variables:
$$f_1(x) \ge c_1, ..., f_n(x) \ge c_1$$
The remaining constraints are non-convex, and so require logical constraints or binary variables to handle.
For simplicity of exposition, I will assume logical constraints are available. If not, they can be handled by standard big M modeling, such as in the "If $f(x)\le0$ then a" section of Logics and integer-programming representations, or as found on this site.
For each $k$ from $2$ to $n$, and for each $i$ from $1$ to $n$, let $b_{k,i}$ be a binary variable, and specify the logical constraints
$$b_{k,i} = 1 \implies f_i(x) \ge c_k.$$ For each $k$ from $2$ to $n$, impose the constraint: $$\sum_{i=1}^n b_{k,i} \ge n-k+1$$
Edit: I corrected a typo and improved the formulation, both as pointed out in the comments by @RobPratt. By switching the direction (specifying the contrapositive) of the logic constraints, the need for an $\epsilon$ fudge factor was eliminated.