Lettura seriale con array di char

Io riformulo il primo codice che hai postato:

#define BUFLEN 200

char response[BUFLEN] = {'\0'};
byte i = 0;
do {
  if (serialSIM800.available()) {
    char c = serialSIM800.read();
    Serial.write(c);
    response[i++] = c;
    response[i] = '\0';
  }
} while (i < BUFLEN - 1 && response[i] != '\n');

(Non testato)