Autor Tema: Encontrar caracter "$" en string ccs c  (Leído 414 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado mariacontenis

  • PIC12
  • **
  • Mensajes: 82
Encontrar caracter "$" en string ccs c
« en: 10 de Octubre de 2019, 10:11:09 »
Amigos requiero de su colaboración de programación para resolver lo siguiente.

Tengo una cadena de caracteres en CCS C  que recibo por la UART del pic como la siguiente: CMT: "1234567890", 19/09/09,$18:08:52-20.

Bien, pues quisiera una función para saber la posicion de ese string ya que ese $ aveces cambia de posición dentro del string.

Agradezco su ayuda!!.

Desconectado elreypic2

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1146
Re:Encontrar caracter "$" en string ccs c
« Respuesta #1 en: 10 de Octubre de 2019, 13:02:59 »
Que tal mariacontenis,

Para realizar esto tienes que hacer uso de la función strchr(). Tendrías que hacer algo como esto:

Código: [Seleccionar]
/* strchr example */
#include <stdio.h>
#include <string.h>

int main ()
{
  char str[] = "This is a sample string";
  char * pch;
  printf ("Looking for the 's' character in \"%s\"...\n",str);
  pch=strchr(str,'s');
  while (pch!=NULL)
  {
    printf ("found at %d\n",pch-str+1);
    pch=strchr(pch+1,'s');
  }
  return 0;
}

Compilando este código en una PC, esta es la salida:

Looking for the 's' character in "This is a sample string"...
found at 4
found at 7
found at 11
found at 18

En tu caso la cadena recibida la metes en la variable "char str[]" y en lugar de buscar la "s" buscas el caracter "$". Cabe mencionar que la cadena debe terminar con el caracter NULL.

elreypic.

Desconectado mariacontenis

  • PIC12
  • **
  • Mensajes: 82
Re:Encontrar caracter "$" en string ccs c
« Respuesta #2 en: 11 de Octubre de 2019, 09:11:35 »

elreypic2

A quedado resuelto, exactamente el código que colocaste lo remplace, bueno, solo hice un par de modificaciones...

La variable del buffer que recibo por el puerto serial del pic lo remplace por la variable char str[] y pch-str+1 dentro del prinf lo iguale a la variable numero para poderlo imprimir; numero= pch-str+1;

Gracias!!!.


 

anything