Personalmete preferirei utilizzare la versione con ilOriginariamente inviato da pietror87
int i=0;
char stringa[LUNGHEZZA_MAX+1];
scanf("%c",&stringa[i]); // leggo il primo carattere
while ( i<LUNGHEZZA_MAX && // se c'è spazio e
stringa[i]!=27 && // ... l'ultimo carattere letto non è ESC e
stringa[i]!='\0') { // ... l'ultimo carattere letto non è '\0', allora...
i++;
scanf("%c",&stringa[i]); // leggo il prossimo carattere
} stringa[i]='\0'; // metto '\0' come ultimo carattere
Per Esc qui usa 27, per invio che devo usare?
getchar(), anzi ancora meglio userei il getch().
Comunque per la scanf() devi modificare la riga :
stringa[i]!=27
con il valore
stringa[i]!=10