I believe the problem has nothing to do with ch. After editing the question, and rereading everything carefully, including the raw post in edit, here's where I see the problem.
The first error is this:
readability.c:36:9: error: expected expression
char ch = s[i];
That "expected expression" error usually happens because there's a stray curly brace, semicolon or some other structural problem at the end of the previous line. Thus, the carat would point at "char", the first thing it finds after the real error, and not "ch".
Because of this error, it fails to process the declaration of ch. The other errors follow from this.
This is why it's important to process compile errors in order. One error can trigger a dozen more false errors. Basing analysis on those errors can lead you to chasing a nonexistent problem.
I suspect that if the previous few lines were added, we would find the problem there. If this doesn't answers your question, please edit the question and post the code from beginning to about line 50.
If this answers your question, please click on the check mark to accept. Let's keep up on forum maintenance ;-)