Haha, I hadn't thought of that (I was thinking about [0,1] instead of (0,1)) :) No, obviously that doesn't work for arbitrary C.
To be precise, we are going to show that if C is a countable subset of [0,1], then we have |[0,1]|=|[0,1]\C|. The result then follows since |[0,1]|=|R|.
Bu Schroeder-Bernstein it is enough to find injections g:[0,1]\C -> [0,1] and f:[0,1] -> [0,1]\C. Of course, g(x)=x works. Now we define f.
C is countable, so we can write C=\{c_1,c_2,c_3,...\}, where c_i and c_j are distinct if i and j are. For every i\in \mathbb{N}, let 0.c_{i1}c_{i2}c_{i3}... be the decimal expansion of c_i. As always, avoid infinite strings of 9's to obtain uniqueness. Now define d_i:=2 if c_{ii}=1, and d_i:=1 otherwise. Let x\in [0,1], and x=0.x_1x_2x_3... its decimal expansion. Define f(x)=0.d_1x_1d_3x_2d_5x_4..., i.e. the decimal expansion of f(x) has as its odd entries d_1,d_3,d_5,... and as its even entries x_1,x_2,x_3,...
Check that f is a function [0,1] -> [0,1]\C (f(x) never equals c_i.), and is injective.
PS. why has this thread been moved to Calculus & Analysis?
PPS: I can't remember myself why f(x) cannot equal c_i for every i. It's true for odd i, but not necessarily for even i (?). But this can easily be bypassed by just replacing C with C={c_1,c_3,c_5,...}, and keep the rest. This is harmless since \mathbb{N} and the set of odd natural numbers have the same cardinality. I'm sure there is a cleaner solution, but this works.