предложить заменить:
while(input != 0)
{
scanf("%c", &text[i]);
if(text[i] == '0')
input = 0;
i++;
}
чем-то похожим на;
// avoid 'text' overflow and
// check that call to `scanf()` was successful
while( i < (MAX-1) && scanf( "%c", &text[i] ) == 1 )
{
// step index to next position in the array: 'text[]'
i++;
}
тогда, наконец,
// teminate the 'text' string
text[ i ] = '\0';
// print number of characters and the actual text
// on separate lines
printf("\nNumber of Characters read: %d\n%s\n", i, text);