Como hacer de un String un array de palabras?

Hola,
Tengo un pequeño problemita, consiste en que quiero hacer de un String largo (que contiene fechas juntas) un array, pero con las fechas separadas. Para luego poder compararlas con la fecha actual..

1- Como hago para hacer este array a partir de los pequeños String que obtengo??

2- Como se puede saber si una palabra o string (fecha actual transformada en string) esta contenida en mi array de palabras(fechas)??

 void LeerMemoria(){
  String stringfecha;
  char Arrayfechas[200];        //Array final contendra las fechas { 12enero22, 13marzo16, 5mayo19...}
  //byte largoSubString;
  int addr;
  String subfecha;
  int posicion = 0;
  int ByteEscritos = EEPROM.read(0);      //se lee los bytes qe conforman las fechas         
  for (addr = 3; addr < ByteEscritos; addr ++) {
  char(value) = EEPROM.read(addr);
  stringfecha.concat(value);          // se juntan  y se obtiene 
  //delay(100);                         //   12enero22| 13marzo16| 5mayo19|...
   }
   
   Serial.println(stringfecha);
   int largototal = stringfecha.length();      //se cuenta el largo total de cadena
   
   for(posicion = 0; posicion < largototal; posicion++){
   subfecha = stringfecha.substring(posicion , '|');  //se corta la cadena en |
   byte largoSubString = subfecha.length();
   posicion = posicion + largoSubString;     // se avanza hasta la siguiente fecha
   
   subfecha.replace('|', '\0');              //se reemplaza | por \0 y queda:
   Serial.println(subfecha);                  // 12enero22  13marzo16  5mayo19
   
   subfecha.toCharArray(Arrayfechas, largoSubString);  //se combierte en array
   //Serial.println(Arrayfechas);                       // pero como los meto a todas las 
                                                        //fechas en el array? y como
                                                         // las comparo??
   
   
    }

forum.ino (1.41 KB)

Ningun problema en ayudarte pero encuentro que tu rutina es justamente eso, y falta parte del sketch.

Pon el contexto para que funcione mas alla de los problemas que tienes asi podemos ayudarte.

Hola.
Yo suelo huir en arduino de los objetos String, por el consumo de memoria que conllevan. Prefiero utilizar las cadenas de caracteres tradicionales, es decir, los char * o char[].

Prueba este código a ver si te sirve de inspiración:

void setup()
{
  // Open serial communications and wait for port to open:
  Serial.begin(9600);
 char *stringfecha = "12enero22|13marzo16|5mayo19";
 char *subcadena[3];
 int subindice=0;
 subcadena[subindice] = strtok (stringfecha,"|");
 while (subcadena[subindice] != NULL)
 {
 subindice++;
 subcadena[subindice] = strtok (NULL, "|");
 }
 for (int i=0; i<3; i++){
 Serial.println(subcadena[i]);
 }
}
void loop(){
      /////////// nada que hacer
}