C has homoiconicity: you can represent C source code as C strings.

You can show this is possible, but it is extremely onerous in comparison.

You can't natively index into a string and get any C syntactic token out of it besides a char.

You can't run that code within the language so no, obviously not. And even if you could, strings + eval alone is not homoiconicity--programs are not manipulated by the compiler as unstructured text strings.