split string in array di string

Ciao a tutti !

vorrei fare una cosa molto semplice ma causa ignoranza in programmazione di C sembra molto difficile :sweat_smile:

Ricevendo da seriale una stringa tipo:

1;5;1;100-1;6;1;100- ......

Vorrei "splittare" la stringa in base al carattere "-" per far diventare un array di stringhe tipo:

String ar[];

ar[0] = 1;5;1;100;
ar[1] = 1;6;1;100;
....

Ho già una funzione "getValue" per ricavare i valori dalla stringa esempio: getValue(ar[1],";",2) .... ma questa va bene quando si conosce il numero di elementi della stringa "splittata", ma siccome non conosco da seriale quante stringhe separate da "-" riceverò questa diventa inutilizzabile.

Qualche soluzione?

Grazie.
Buona giornata

Ma parliamo di C o di C++?
Parli di C

cesco:
programmazione di C

ma usi l'oggetto String, che è C++?

String ar[];

In C puoi fare una funzione che scorra la stringa dal 1° carattere e copi uno ad uno i singoli caratteri in altre stringhe finché non trova il carattere separatore oppure non giunge a fine stringa d'origine.

In C++ puoi usare il metodo indexOf dell'oggetto String per avere la posizione del 1° carattere separatore e poi con substring estrarre la stringa. E così via fino alla fine.