Go Down

Topic: Problema al concatenar varios Strings (Read 859 times) previous topic - next topic

Asiergr

Hola acabo de registrarme en el foto y aprovecho para saludar a toda la comunidad!

1) String voltage="Temperatura del sensor: " +"jjjjjj";

2) Serial.println("Temperatura del sensor: " + "jjjjjj" );

En el primer caso tenemos un string y mediante el simbolo + concatenamos los Strings. Esto es algo elemental que siempre se ha podido hacer en C como en JAVA u otros lenguajes. Teniendo en cuenta que arduino proviene de C no entiendo este error.

Si no concateno no pasa nada. Si concateno con el valor de una variable no pasa nada, mientras que al concatenar dos String no deja ni compilar.

En el segundo caso vemos lo mismo solo que dentro del println.

Esto viene al segundo tutorial del manual de iniciación para arduino que compré. En dicho manual hacen varias llamadas a Serial.print pero yo como se programar quería englobar en una sola orden varios mensajes seguidos de valores de variables de esta manera:

Serial.println("Temperatura del sensor: " +temperatura + "voltaje: " +voltaje );


Muchas gracias

maxid

Nose en java, pero en c no se contateno jamás con más, se usa strcat.
Revisa la documentación
El que pregunta aprende, el que responde aprende a responder.

curro92

#2
Jul 29, 2013, 05:45 am Last Edit: Jul 29, 2013, 05:47 am by curro92 Reason: 1
Hola,
El objeto String pertenece a C++, no es C

En C, si tienes una cadena con suficiente espacio (pare el texto + null final), tendrías que hacer, como te ha dicho maxid

char voltage[33];
strcpy(voltage, "Temperatura del sensor: ");
strcat(voltage, "jjjjjj");

En C también puedes usar esta otra forma

sprintf(voltage, "%s%s", cadena1, cadena2);


Luis_AM3C

Hola,

       El objeto String si existe en Arduino, el problema en 1) es que no puedes usar el operador + sobre puras constante, pero si de un String + una constante.
Code: [Select]

String voltage="Temperatura del sensor: ";
voltage += "jjjjjj";
//voltage = voltage +"jjjjjj"; //Codigo Equivalente a la línea anterior


       En el caso 2) igual si usas un obtejo String en lugar de puras constantes tambien funciona.

Saludos.

Go Up