strchr localizar virgula e copiar o restante

Software e Hardware para uC PIC

Moderadores: andre_luis, 51, guest2003, Renie

Mensagempor msamsoniuk » 14 Fev 2010 20:51

provavelmente eh alguma noia do seu compilador ou algum outro engano seu hehehe mas tem infinitas formas de fazer isso, por exemplo, usando apenas notacao de arrays:

Código: Selecionar todos
#include <stdio.h>

int main()
{
  char p[]="$GPGGA,123956.983,1139.2903,S,03900.0478,W,1,10,0.9,388.7,M,-11.6,M,,0000*7F";

  int i,j;

  i=0; do
  {
    for(j=i;p[i]&&p[i]!=',';i++);

    if(p[i]==',')
    {
      p[i++]='\0';
    }
    printf("par=[%s]\n",p+j);

  } while(p[i]);

  return 0;
}


olha o resultado:

Código: Selecionar todos
par=[$GPGGA]
par=[123956.983]
par=[1139.2903]
par=[S]
par=[03900.0478]
par=[W]
par=[1]
par=[10]
par=[0.9]
par=[388.7]
par=[M]
par=[-11.6]
par=[M]
par=[]
par=[0000*7F]


funciona redondinho! as vezes pode ser uma noia do seu compilador com ponteiros, vi algo similar com o sdcc :)
Avatar do usuário
msamsoniuk
Dword
 
Mensagens: 2935
Registrado em: 13 Out 2006 18:04

Mensagempor fabim » 14 Fev 2010 21:52

anus passado o Rodrigo Adachi tava sofrendo com essa anarquia, e eu fiz uma rotininha pra ele, e esninei como funcionava, aí ele mudou algumas coisas e ficou redondaço.
Rodrigo se ler, explique pro cirstian.. to com pregui do cão de escrever
Mano, ve só.
Sou responsável pelo que escrevo!!! E não pelo que você entende !!!
fabim
Dword
 
Mensagens: 5001
Registrado em: 16 Out 2006 10:18
Localização: aqui uái!!!?

Anterior

Voltar para PIC

Quem está online

Usuários navegando neste fórum: Nenhum usuário registrado e 1 visitante

cron

x