Go Down

Topic: ayuda con string (Read 813 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