Internet de les coses amb ESP32 i ESP8266

Exemples Referència Plaques   Recursos CITCEA
Projectes Programació Perifèrics   Inici

Manipulació de cadenes de caràcters (string)

Les variables de tipus char ens permeten emmagatzemar caràcters i podem definir un vector per emmagatzemar una cadena de caràcters. Però els char no ens permeten gaires funcions de manipulació. Els objectes String, en canvi, tenen una sèrie de funcions que ens permeten fer una conjunt d'operacions i manipulacions interessants.

Podem definir un objecte String de la següent manera:

String text1;
String text2 = "hola";

Podem seleccionar caràcters solts, com si es tractés d'un vector (el primer caràcter és el 0).

    String text = "hola";
    Serial.println(text[1]);    // Torna "o" 

La funció length ens torna la llargada de la cadena de caràcters.

    String text = "Bon dia!";
    Serial.println(text.length());    // Torna 8 

La funció indexOf ens dóna la posició d'un caràcter (o un conjunt de caràcters) o bé -1 si no hi és.

    String text = "hola";
    Serial.println(text.indexOf("l"));    // Torna 2 
    Serial.println(text.indexOf("ola"));    // Torna 1
    Serial.println(text.indexOf("k"));    // Torna -1 

La funció substring ens dóna una part de la cadena de caràcters. Pot tenir un paràmetre o dos. El primer paràmetre (o l'únic) és la posició a partir de la que s'agafa el contingut per fer la nova cadena i el segon (si hi és) és la posició del primer caràcter que no s'ha d'agafar.

    String text = "Bon dia!";
    Serial.println(text.substring(4));    // Torna "dia!" 
    Serial.println(text.substring(4, 7));    // Torna "dia"
    Serial.println(text.substring(0, 3));    // Torna "Bon" 

La funció toInt ens permet convertir, si és possible, la nostra cadena de caràcters en un enter de tipus long. Si no es pot interpretar com a nombre torna un zero.

    String text = "43.21";
    Serial.println(text.toInt());    // Torna 43 (enter) 
    text = "56";
    Serial.println(text.toInt());    // Torna 56 
    text = "vint";
    Serial.println(text.toInt());    // Torna 0 

La funció toFloat ens permet convertir, si és possible, la nostra cadena de caràcters en un nombre real de tipus float. Si no es pot interpretar com a nombre torna un zero.

    String text = "43.21";
    Serial.println(text.toFloat());    // Torna 43.21 
    text = "56";
    Serial.println(text.toFloat());    // Torna 56.00 
    text = "vint";
    Serial.println(text.toFloat());    // Torna 0.00 

La funció toCharArray permet convertir un String en un vector de char.

...
char server[50];
String server1;
...
...
    server1.toCharArray(server, 50);    // El primer paràmetre és el vector i el segon la seva llargada
...

Podeu trobar totes les funcions disponibles al web d'Arduino.

 

 

 

En aquest web, les fotografies marcades amb [AF] són del web d'Adafruit, les marcades amb [SF] del web d'Sparkfun i les marcades amb [AU] del web d'Arduino.

 

 

 

 

 

 

 

 

 

 

Licencia de Creative Commons
Esta obra de Oriol Boix está licenciada bajo una licencia no importada Creative Commons Reconocimiento-NoComercial-SinObraDerivada 3.0.