Ok questo è il ciclo che ho fatto io
     
	int i = 0;
	c = getchar();
	while (i < lim - 1)
	{
		++i;
		if ((c = getchar()) != EOF) s[i] = c;
		else if (c != '\n') s[i] = c;
	}
Questo è il ciclo a cui il mio deve essere equivalente:
for (i = 0; i < lim -1 && (c = getchar()) != EOF && c != '\n'; ++i)
      s[i] = c;