Yes, that's perfectly fine. For example:
Code:
char* digit = &text[i];
The problem is that you're not doing that. Rather, you're creating a temporary char with (text[i] + '\0'), and then trying to take the address of that temporary, but that's not allowed.
Since text[i] is already a digit char, there is no need to add '\0' to it: that technique is used when you have an int digit value and want to convert it to a digit char. EDIT: wait a minute, you're not adding '0', you're adding '\0', which is equivalent to adding 0, i.e., it has no net effect except to result in a temporary. I'm guessing you thought you could construct a string in this way.
But, even if you do use my example, that still doesn't work for your overall goal: you would only have a pointer to a particular char in the input string. Rather, you should allocate space for the output string, then copy the relevant chars over to construct the result (remembering to null terminate the string).