Problema con assegnazione del terminatore in un buffer
Salve, sto' facendo una prova con il seguente pezzo di codice:
Esso serve ad inserire un comando seguito da una voce contenuti dentro a 'buffer'.
Dopo aver inserito comando e voce ad esempio il comando 'cancella rrrr' che serve a cancellare la voce 'rrrr' mi succede che il terminatore mi viene messo alla fine di tale stringa contenuta in 'buffer'. L' inserimento di buffer[x]='\0' serve per dividere il 'comando' dalla voce tramite un '\0'.
Nella seconda iterazione di while() inserisco un comando piu' corto di nome 'help': come previsto dal codice help viente sovrascritto in 'buffer' inserendo un \000 dopo buffer dandomi come risultato 'help\00a rrrr' .
Mi succede che la copiatura di buffer in buffer1 funziona fermandosi appunto dopo \000 pero' il resto di buffer viente copiato in un altro array compreso \000 cosa che io non voglio perche'
devo copiare in un array il contenuto di 'buffe' che inizia dal terminatore fino alla fine della voce 'rrrr'
Nessuno mi puo' dare una mano a far si che dopo l' inserimento del teminatore non sia piu' possibile leggere e scrivere oltre help?
Non so' come risolvere.

- Codice: Seleziona tutto
while(1)
{
x=0;
/*inserimento buffer del comando*/
printf("\n\n\n>");
while((ch=getchar())!='\n' && x<MAX) {buffer[x++]=ch;}
buffer[x]='\0';
//strncat((buffer+x),'\0',2);
/*copia buffer[] in buffer1[] per poi testare buffer1[] in modo da non alterare il contenuto di buffer[]*/
strcpy(buffer1,buffer);
Esso serve ad inserire un comando seguito da una voce contenuti dentro a 'buffer'.
Dopo aver inserito comando e voce ad esempio il comando 'cancella rrrr' che serve a cancellare la voce 'rrrr' mi succede che il terminatore mi viene messo alla fine di tale stringa contenuta in 'buffer'. L' inserimento di buffer[x]='\0' serve per dividere il 'comando' dalla voce tramite un '\0'.
Nella seconda iterazione di while() inserisco un comando piu' corto di nome 'help': come previsto dal codice help viente sovrascritto in 'buffer' inserendo un \000 dopo buffer dandomi come risultato 'help\00a rrrr' .
Mi succede che la copiatura di buffer in buffer1 funziona fermandosi appunto dopo \000 pero' il resto di buffer viente copiato in un altro array compreso \000 cosa che io non voglio perche'
devo copiare in un array il contenuto di 'buffe' che inizia dal terminatore fino alla fine della voce 'rrrr'
Nessuno mi puo' dare una mano a far si che dopo l' inserimento del teminatore non sia piu' possibile leggere e scrivere oltre help?
Non so' come risolvere.

