Go Down

Topic: ayuda con string (Read 871 times) previous topic - next topic

Maverik

hola.
a mi arduino le paso una serie de comandos por la web
los comandos son:
auto=ONy****
auto=OFFy****

donde los **** son 4 numeros q pueden variar

como puedo dividir esa cadena de texto para que me quede en dos partes
la primera auto=ON o auto=OFF
y la segunda y****

curro92

Entiendo que la 'y' es el separador.
Si la primera parte siempre tiene siemprte 7 caracteres,
char comando[15] ;
char primera[11];
char segunda[11];
char *p;
strcpy(comando, "auto=ONy1234");

// Si la primera parte siempre tiene 7 caracteres

// copiar desde la 'y'
strcpy(segunda, &comando[7]);

// cortar en la 'y'
comando[7] = '\0';
strcpy(primera, comando);

// si la longitud de la primera parte puede ser variable,
// buscar la 'y' y apuntarlo con un puntero
p = strchr(comando, 'y');
strcpy(segunda, p);
// cortar en 'y'
*p = '\0';
strcpy(primera, comando);

Seguro que hay otras formas.


chiva

#2
Oct 15, 2010, 09:28 pm Last Edit: Oct 16, 2010, 10:35 am by chiva Reason: 1
Code: [Select]

string comando[13]
string cadena1[4]
string cadena2[5]
int i=0
int j=0

recibir comando y meterlo en el array comando

mientras comando[i] != 'y'
 cadena1[i] = comando[i]
 i++

mientras comando[i] != 0
 cadena2[j]=comando[i]
 i++
 j++

Mercadillo electrónico. Kit iniciación a Arduino, shield LCD a color y más cosas!

Maverik

#3
Oct 16, 2010, 06:18 am Last Edit: Oct 16, 2010, 06:20 am by Maverik Reason: 1
Chiva

no soy muy bueno con esto de las cadenas y los strings, pero según me parece tu código no me permite tener números con 0

que pasaría si yo paso el parámetro auto=ONy0230

quedaría que:
comando => auto=ONy0230
cadena1 => auto=ON
cadena2 => 23

es correcto lo que digo?, porque en ese caso no me serviría el código

curro92

Ese 0 equivale al carácter nulo fin de cadena, es lo mismo que '\0'
El carácter (número) cero habría que señalar como '0'

Maverik

OK lo voy a probar en estos días y les diré como me fue.
gracias

Go Up
 


Please enter a valid email to subscribe

Confirm your email address

We need to confirm your email address.
To complete the subscription, please click the link in the email we just sent you.

Thank you for subscribing!

Arduino
via Egeo 16
Torino, 10131
Italy