• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:GPS受信の抜き出しについて)

GPS受信の抜き出しについて

このQ&Aのポイント
  • 大学卒業間近の大学4年生が、卒業研究の一環としてシリアル通信でGPSの構文をテキストファイルに書き込むプログラムを作成しています。
  • しかし、中途半端なプログラムの勉強のために、生データから重要な部分を抜き出す方法がわかりません。
  • 北緯と東経の数値のみを抜き出して書き込むプログラムを作成したいのですが、どの部分にどのような文を入力すれば良いか分かりません。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

strtok() 使えば','区切りで文字列を抽出できるので、 'V'/'N'の直後を取り出せるでしょ。

gmwvmmgm
質問者

お礼

返信が遅くなってしまい申し訳ありませんでした。 strtok()ですか… 盲点でした。 試しにstrtok()を使って if((p = strtok(sBuf,",")) == NULL); if(strcmp(p,"$GPRMC") != 0); /*センテンスの先頭は$GPRMCか?*/ if ((p=strtok(NULL,","))==NULL); /*utc:世界標準時*/ sscanf(p,"%d",&utc); if ((p=strtok(NULL,","))==NULL); /*stat:ステータス*/ stat=p[0]; if ((p=strtok(NULL,","))==NULL); /*lat:緯度*/ sscanf(p,"%lf",&lat); if ((p=strtok(NULL,","))==NULL); /*ns:南北*/ ns=p[0]; if ((p=strtok(NULL,","))==NULL); /*lon:経度*/ sscanf(p,"%lf",&lon); if ((p=strtok(NULL,","))==NULL); /*ew:東西*/ ew=p[0]; と打ち込んでみたところ上手く抜き出すことができました。 ご多忙の中、回答していただきまことにありがとうございました。 ベストアンサーに選ばせていただきます。