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 [itex]C=\{c_1,c_2,c_3,...\}[/itex], where c_i and c_j are distinct if i and j are. For every [itex]i\in \mathbb{N}[/itex], let [itex]0.c_{i1}c_{i2}c_{i3}...[/itex] be the decimal expansion of [itex]c_i[/itex]. As always, avoid infinite strings of 9's to obtain uniqueness. Now define [itex]d_i:=2[/itex] if [itex]c_{ii}=1[/itex], and [itex]d_i:=1[/itex] otherwise. Let [itex]x\in [0,1][/itex], and [itex]x=0.x_1x_2x_3...[/itex] its decimal expansion. Define [itex]f(x)=0.d_1x_1d_3x_2d_5x_4...[/itex], 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 [itex]\mathbb{N}[/itex] and the set of odd natural numbers have the same cardinality. I'm sure there is a cleaner solution, but this works.