Go Down

Topic: Cortar char y convertirlo a char* (Read 4 times) previous topic - next topic


Maverik

si lo de cortar el char esta listo el problema es la convercion de las variables

curro92


Hola Maverik,
Una variable declarada como
Code: [Select]
char c   solo puede contener un único carácter. En tu caso supongo que se trata de una cadena, habría que definir como
Code: [Select]
char c[xx] De todas formas, una cadena char siempre acaba en carácter nulo ('\0'). Puedes recorrer la cadena hasta llegar a ese carácter nulo
Code: [Select]

// suponiendo que la cadena está en char c[]
int n;

n = 0;
while(c[n] != '\0')
{
     // aquí haces lo que sea
    n++;
}



Maverik

Curro92
mira te paso parte de mi codigo para que entiendas mas como es.

Code: [Select]
char c = client.read();
        if(readString.length() < 100)
        {
          readString.append(c);
        }
        if(c == '\n')
        {

          ////////**********alarma*********///////
          //          alrm1=20.50.ON
          //          acc1=ON

          int n;
          char t[10];
          n = 0;
          while(c[n] != '\0')
          {
            t= t + c[n];// aquí haces lo que sea
            n++;
          }

          char cadena[] = c;
          char *p, a[15], b[5], c[3];

          // la primera parte
          strcpy(a, cadena);
          p = strchr(a, '=');
          if(p != NULL) *p = '\0';  // se corta en el carácter '='

          // segunda parte, se copia a partir de '=' y se corta dejando 2
          p = strchr(cadena, '=');
          if(p != NULL)
          {
            strcpy(b, ++p);
            b[2] = '\0'; 
          }

          // tercera parte
          p = strchr(cadena, '=');
          if(p != NULL)
          {
            p += 3;   // se corren 3 posiciones y se copia lo que queda
            strcpy(c, p);
          }

          char *pa, *pb, *pc;
          pa = &a[0];
          pb = &b[0];
          pc = &c[0];


con este código me da el error:
error: invalid types 'char[int]' for array subscript
en esta parte:
Code: [Select]
while(c[n] != '\0')

ya no se como mas hacer esto me esta volviendo loco

curro92

Por lo que veo estás usando la clase String, y no es C sino C++
Tu cadena sería readString, creo. Pero en C++ no te puedo ayudar mucho.

Go Up