constexpr size_t bufSize = 128;
uint16_t indexes[64];
char buf[bufSize];
int16_t i, line_len, line_idx;
void setup() {
delay(250);
Serial.begin(115200); Serial.println();
memset(buf, '\0', bufSize);
strcpy(buf, "hello me mate\nthis is a text!\nwith mult lines and then some more.\nline1\nline2\nline3\nabcdefghijklmno 1234567890\n");
Serial.println("buf: "); Serial.println(buf); Serial.println("\n---------------------\n");
line_len = 0;
line_idx = 0;
indexes[0] = 0;
for (i=0; i<strlen(buf); i++) {
Serial.print(line_idx);
Serial.print(":");
Serial.print(line_len);
Serial.print(" '");
Serial.print(buf[i]);
Serial.println("'");
line_len++;
if ((buf[i] == '\n' || buf[i] == '\n') || (line_len > 21)) {
line_len = 0,
indexes[++line_idx] = i+1;
}
}
Serial.println("\n---------------------\n");
for (int n=0; n<line_idx; n++) {
Serial.print(n); Serial.print(" "); Serial.print(indexes[n]);
Serial.print(" -> "); Serial.println(buf[(indexes[n])]);
}
}
void loop() {
delay(10);
}