How to deal with discontinuous points when proving that step functions are dense in $PC[a,b]$ This question is a follow-up to my previous question: How does one prove that a space is dense in another under some norm?
I figured out a way to solve (part of) the exercise.
Given some function $f\in PC[a,b]$, my argument relies on the continuity of $f$ to prove that there exists some sequence $f_N\subset S[a,b]$ such that $$\lim_{N\to \infty} d(f,f_N)=\lim_{N\to\infty} ||f-f_N||_\infty=\lim_{N\to\infty}\sup_{x\ \in\ [a,b]} |f(x)-f_N(x)|=0 $$
However, the exercise that I am trying to solve asks for a proof that $S[a,b]$ is dense in $PC[a,b]$, the space of all bounded piecewise continuous functions on $[a,b]$. My assumption of continuity seems to be at tension with the fact that $f$ should be allowed to be discontinuous at finitely many points.
I was wondering what the standard procedure is for dealing with the finitely many points where $f\in PC[a,b]$ may be discontinuous. One possibility I considered can be described as "starting a new step in the step function at each of the finitely many $x_j$ where one encounters discontinuity of $f(x)$", but this is clearly not rigorous enough. 
Update: After some discussion with T.A.E., he suggested that it should be possible to add some $s\in S[a,b]$ to any piecewise continuous function to reduce the problem to the continuous case, which I solved already. However, I am unclear how to make this argument precise (doesn't a step function just 'shift the discontinuity'?). Any suggestions or alternatives are more than welcome.
 A: Let's assume that the functions in $PC[a,b]$ and in $S[a,b]$ are normalized so that
$$
            f(x+0)=f(x),\;\;\; a \le x < b.
$$
All of the functions are required to be continuous at $a$ using this normalization. But these funtions may be discontinuous at $b$. If $y \in (a,b]$ is a point of discontinuity of $f \in PC[a,b]$, then
$$
          s(x) = f(y-0)\chi_{[a,y)}(x)+f(y)\chi_{[y,b]}(x)
$$
is a normalized function in $S[a,b]$ with $y$ as the only point of discontinuity; furthermore, $s(y+0)=f(y)=f(y+0)$ and $s(y-0)=f(y-0)$. Therefore $f-s$ is a normalized function in $PC[a,b]$ that is continuous at $y$; $f-s$ has the same jumps and discontinuities as $f$ in $[a,b]\setminus\{y\}$. Continuing by finite induction, you obtain $s \in S[a,b]$ such that $g=f-s$ is continuous. Because $g$ is continuous, then it is uniformly continuous, and, for every $\epsilon > 0$, you can find points $a=x_{0} < x_{1} < \cdots < x_{n}=b$ such that
$$
    s_{\epsilon}(x) = \sum_{j=1}^{n-1}c_{j}\chi_{[x_{j-1},x_{j})}(x)+c_{n}\chi_{[x_{n-1},x_{n}]}(x)
$$
satisfies $|s_{\epsilon}(x)-g(x)| < \epsilon$ for all $x \in [a,b]$. It follows that $|f-s-s_{\epsilon}| < \epsilon$ on $[a,b]$.
