La libreria PString è progettata per fornire un'alternativa più efficiente alla classe String
di Arduino, ottimizzata specificamente per il PLC Opta.
Grazie a questa libreria è possibile manipolare stringhe in modo dinamico, mantenendo un controllo accurato sull'uso della memoria e migliorando le prestazioni nei dispositivi con risorse limitate.
-
PString()
- Costruttore di default che inizializza una stringa vuota.
Esempio:
PString str;
- Costruttore di default che inizializza una stringa vuota.
-
PString(const char* str)
- Costruttore che inizializza l'oggetto con una stringa C (
const char*
).
Esempio:
PString str = "Ciao";
- Costruttore che inizializza l'oggetto con una stringa C (
-
PString(const PString& other)
- Costruttore di copia.
Esempio:
PString str1 = "Ciao"; PString str2 = str1;
- Costruttore di copia.
-
PString(const String& str)
- Costruttore che permette il cast da
String
aPString
.
Esempio:
String strArduino = "Ciao Arduino"; PString str = strArduino;
- Costruttore che permette il cast da
-
operator=
- Permette di assegnare una stringa
const char*
, un oggettoPString
o un oggettoString
.
Esempio:
PString str; str = "Ciao"; str = String("Test Arduino");
- Permette di assegnare una stringa
-
operator+
- Consente di concatenare stringhe. Supporta
const char*
ePString
.
Esempio:
PString str1 = "Ciao"; PString str2 = str1 + " Mondo!";
- Consente di concatenare stringhe. Supporta
-
operator==
eoperator!=
- Permettono il confronto tra due stringhe
PString
.
Esempio:
PString str1 = "Ciao"; PString str2 = "Ciao"; if (str1 == str2) { Serial.println("Le stringhe sono uguali"); }
- Permettono il confronto tra due stringhe
-
c_str()
- Restituisce il puntatore alla stringa.
Esempio:
PString str = "Ciao"; Serial.println(str.c_str());
- Restituisce il puntatore alla stringa.
-
lengthStr()
- Restituisce la lunghezza della stringa.
Esempio:
PString str = "Ciao"; Serial.println(str.lengthStr()); // Output: 4
- Restituisce la lunghezza della stringa.
-
print()
- Stampa la stringa sulla Serial.
Esempio:
PString str = "Ciao"; str.print();
- Stampa la stringa sulla Serial.
-
findChar(char c)
- Trova il primo carattere
c
nella stringa.
Esempio:
PString str = "Arduino"; char* result = str.findChar('d'); if (result) Serial.println("Carattere trovato");
- Trova il primo carattere
-
findSubstring(const char* substr)
- Trova una sottostringa all'interno della stringa.
Esempio:
PString str = "Ciao Arduino"; if (str.findSubstring("Arduino")) { Serial.println("Sottostringa trovata"); }
- Trova una sottostringa all'interno della stringa.
-
startsWith
- Controlla se la stringa inizia con un prefisso specifico. Supporta
PString
,const char*
eString
.
Esempio:
PString str = "Ciao Mondo"; if (str.startsWith("Ciao")) { Serial.println("Inizia con 'Ciao'"); }
- Controlla se la stringa inizia con un prefisso specifico. Supporta
-
endsWith
- Controlla se la stringa termina con un suffisso specifico. Supporta
PString
,const char*
eString
.
Esempio:
PString str = "Test Arduino/*"; if (str.endsWith("/*")) { Serial.println("Termina con '/*'"); }
- Controlla se la stringa termina con un suffisso specifico. Supporta
-
contains
- Verifica se la stringa contiene una sottostringa. Supporta
PString
,const char*
eString
.
Esempio:
PString str = "Ciao Arduino"; if (str.contains("Arduino")) { Serial.println("Contiene 'Arduino'"); }
- Verifica se la stringa contiene una sottostringa. Supporta
-
split(char delimiter, int& tokenCount)
- Divide la stringa in copie utilizzando un delimitatore.
Esempio:
PString str = "Ciao:Mondo:Arduino"; int count; PString* tokens = str.split(':', count); for (int i = 0; i < count; i++) { tokens[i].print(); } delete[] tokens;
- Divide la stringa in copie utilizzando un delimitatore.
-
splitPtr(char delimiter, int& tokenCount)
- Divide la stringa utilizzando un delimitatore e restituisce puntatori ai token nella stringa originale.
Esempio:
PString str = "Ciao:Mondo:Arduino"; int count; const char** tokens = str.splitPtr(':', count); for (int i = 0; i < count; i++) { Serial.println(tokens[i]); } delete[] tokens;
- Divide la stringa utilizzando un delimitatore e restituisce puntatori ai token nella stringa originale.
#include "PString.h"
PString buffer;
void setup() {
Serial.begin(115200);
buffer = "Ciao Arduino/*";
// Test startsWith, endsWith, contains
if (buffer.startsWith("Ciao")) Serial.println("La stringa inizia con 'Ciao'");
if (buffer.endsWith("/*")) Serial.println("La stringa termina con '/*'");
if (buffer.contains("Arduino")) Serial.println("La stringa contiene 'Arduino'");
// Test split
int count;
PString* tokens = buffer.split(' ', count);
for (int i = 0; i < count; i++) {
tokens[i].print();
Serial.println();
}
delete[] tokens;
}
void loop() {
// Vuoto
}
La libreria PString fornisce un'alternativa leggera e ottimizzata alla classe String
, ideale per dispositivi come il PLC Opta. Grazie alle sue funzionalità avanzate, è possibile manipolare e validare stringhe in modo semplice ed efficiente.
Buona programmazione! 🚀