String.
La principale differenza tra una stringa e un array di caratteri è che una stringa è un array dinamica che non ha bisogno di essere specificata in termini di dimensioni, può cambiare durante il funzionamento del programma. Inoltre, una stringa non è solo un tipo di dati, ma un oggetto di una classe molto potente della libreria String che viene automaticamente inclusa nel codice e aggiunge un sacco di utili strumenti per lavorare con il testo: dividere, taglio, ricerca e sostituzione, ecc. Una stringa può essere creata da qualsiasi tipo di dati e riconvertita in quasi tutti.
Come dichiarare una stringa e come lavorarci, oltre ad alcune sottigliezze:
- String string0 = "Hello String"; - inserisci il testo tra virgolette
- String string1 = String("Hello ") + String("String"); - somma di due stringhe
- String string2 = String('a'); - stringa dal carattere tra virgolette singole
- String string3 = String("This is string"); - convertire il testo tra virgolette in String
- String string4 = String(string3 + " more"); - aggiungi la stringa string3 con il testo tra virgolette
- String string5 = String(5); - convertire da numero a String
- String string6 = String(7, DEC); - converti da numero con indicazione di base (decimale)
- String string7 = String(32, HEX); - converti da numero con indicazione di base (esadecimale)
- String string8 = String(255, BIN); - converti da numero con indicazione di base (binaria)
- String string9 = String(3.14, 2); - da float che specifica il numero di cifre decimali
- String string10 = string0 + string1; - le stringe possono essere impilate l'una con l'altra
Puoi formare un nome dai pezzi, ad esempio, per lavorare con i file. Anche da #define.
#define NAME "speed"
#define TYPE "-log"
#define EXT ".txt"
Quando si aggiunge, è sufficiente specificare String una volta per la prima stringa.
String filename = String(NAME) + TYPE + EXT;
L'accesso a un elemento di una stringa funziona allo stesso modo di un array.
string0[0] = 'h';
Ora invece di Hello String abbiamo hello String.
Le stringhe possono essere dichiarate in molti modi e puoi anche aggiungere letteralmente stringhe come numeri con l'operatore (+). Le stringhe sono oggetti della classe String e questa classe ha un numero enorme di metodi convenienti per lavorare con le stringhe. String è uno strumento molto pesante, molto lento e occupa molta memoria, la sola presenza di stringhe (da una o più) nel firmware occupa +5% di memoria Flash. Lo "strumento" stesso è connesso (classe String). Per i piccoli progetti, la memoria sarà sempre sufficiente. L'uso impreciso delle stringhe può causare la frammentazione della RAM e arresti anomali del programma.