One can use non elementary tools (that do not rely on $\pi$ or geometry !) to prove this as well, in the following way.
You already checked that $|c(x)| =1$ for all $x\in\mathbb R$. Now let $S=\{z\in S^1\mid z\in c(\mathbb R)\}$.
The point will be to prove that it is open and closed in $S^1$, and to prove that $S^1$ is connected.
First to show that it is open : this is where I would use differential geometry, although there are probably more elementary solutions.
Indeed one can check that $S^1$ is a $1$-dimensional submanifold of $\mathbb R^2$ from its defining equation, and one can check that $c$ has a nonzero (therefore invertible, because we're in dimension $1$) differential by just computing it and knowing that $\exp$ doesn't vanish, so that $c$ is a local diffeomorphism. It follows that it has an open image.
Now to show that the image is closed : this is where I would use differential calculus, although again there are probably more elementary solutions.
Indeed $c$ satisfies the following differential equation $(E)\,\, y' =iy$ from $\mathbb R\to \mathbb C$. Moreover, for any $z\in S^1$, by taking $zc$ we see that $(E)$ has a solution with $z$ in its image.
Let $U:= zc(\mathbb R)$ which is an open neighbourhood of $z$. If $z\in \overline{S}$ then there is $y\in \mathbb R$ with $c(y) \in U$, say $c(y) = zc(x)$ for some $x\in \mathbb R$. By uniqueness of solutions to degree $1$ differential equations given an initial condition, it follows that $t\mapsto zc(t+x-y)$ and $c$ agree on a neighbourhood of $y$ and so we can glue them to get a solution $d$ to the equation which agrees with $c$ on $0$ and has $z$ in its image (this is very badly written, hopefully you'll understand what I mean - if you don't I can come back and make this bit more precise)
But that solution must be $c$ ! Therefore $z$ is in the image of $c$. So $S$ is closed.
Therefore $S$ is clopen in $S^1$.
Finally, to show that $S^1$ is connected, note that the usual retraction from algebraic topology $\mathbb R^2\setminus \{0\}\to S^1$, $x\mapsto \frac{x}{||x||}$, and the proof of its continuity don't rely in any way on $\pi$. It's quite easy to show that $\mathbb R^2\setminus\{0\}$ is path-connected, therefore so is $S^1$.
Since $0\in S$, it follows that $S=S^1$ so that $c:\mathbb R\to S^1$ is surjective. Let $x$ be such that $c(x) = -1$ (in complex notation). Then $c(2x) = 1$ and $2x\neq 0$, so $c$ is $2x$-periodic; now by standard arguments we find a smallest period $T$ which we call $2\pi$. And the rest, as they say, is history.
This solution has the disadvantage of using heavier artillery (differential calculus, differential geometry), but the end result is that it is more conceptual, and somewhat cleaner than the alternative computational solution offered by LutzL (which, to be honest, I didn't read in detail) - although their solution is also instructive, in that it is quite elementary and readable with less background.
It is very likely that the "local diffeomorphism" bit of the argument can be made more elementary, so the "$S$ is open" bit should be doable elementarily. I'm less certain about the "$S$ is closed" bit. As to connectedness of $S^1$, I mentioned algebraic topology, but in fact of course the argument is completely elementary.
Best Answer
It seems fine, maybe we can also proceed as follows, since
$$e^{i\theta}\cdot e^{-i\theta}=e^0=1$$
we have
$$(x+iy)(a+ib)=ax-by+i(ay+bx)=1$$
and