ページ 11

文字列の分割について

Posted: 2012年3月30日(金) 17:15
by net921
今、「,」ごとで文字列を分割しています。
一応下記のように分割して表示までできたのですが任意の変数に入れることができません。

コード:

#include <stdio.h>
#include <string.h>

char buf[512]="093514,A,3428.9468,N,13649.4907,E,0.0,196.2,180708,6.7,W,A*05";

int main(void) {
char *p;

if ((p=strtok(buf,","))!=NULL) { /* カンマまでの文字を取得 */
if (strcmp(p,"$GPRMC")==0) { /* 先頭が$GPRMCなら */
while((p=strtok(NULL,","))!=NULL) { 
printf("%s\n",p); /* 表示 */
}
}
}
return 0;
}
これをdataという変数に入れたいのですがどのようにやればいいのでしょうか。
教えてください。
VC++ 2010 Express 使用しています。

Re: 文字列の分割について

Posted: 2012年3月30日(金) 17:35
by fulls
これをdataという変数に入れたいのですがどのようにやればいいのでしょうか。
この"これ"というのは分割された文字列のことでいいのですか?
あとdataという変数は何ですか?

Re: 文字列の分割について

Posted: 2012年3月30日(金) 17:39
by softya(ソフト屋)
data変数の型やらはどうなっているんでしょうか?

Re: 文字列の分割について

Posted: 2012年3月30日(金) 17:48
by net921
"これ"というのは分割された文字列 そのとうりです。
data変数の型は文字列が入るような型です。適当な型です。

Re: 文字列の分割について

Posted: 2012年3月30日(金) 17:56
by fulls
そのソースコードではpに分割された文字列が入っているようなので、pをstrcpyとかでコピーすればいいのではないでしょうか。

Re: 文字列の分割について

Posted: 2012年3月30日(金) 18:21
by softya(ソフト屋)
net921 さんが書きました:"これ"というのは分割された文字列 そのとうりです。
data変数の型は文字列が入るような型です。適当な型です。
フォーラムルールのテンプレートを使って今の知識や使って良い機能などを明確にして下さい。あと課題なら課題だと明言をお願いします。
http://dixq.net/board/board.html

ひとつの変数にはひとつの値しか入れれませんので複数の値を入れることは出来ません。
なのでnet921さんが知っている方法で複数の値を入れる方法を明示して下さい。

Re: 文字列の分割について

Posted: 2012年3月30日(金) 19:08
by net921
char data[11][100];

みたいな感じです。配列を使って

課題ではありません。

Re: 文字列の分割について

Posted: 2012年3月30日(金) 19:23
by softya(ソフト屋)
では、その配列にstrcpyをつかってコピーしてみて下さい。
作るのは基本的にnet921さんで分からない事や疑問点はサポートします。
文字列配列やポインタは理解されていますよね?

「strcpy」
http://www9.plala.or.jp/sgwr-t/lib/strcpy.html

あと
char data[11][100];
では要素数と数が合いません。

Re: 文字列の分割について

Posted: 2012年3月30日(金) 20:03
by net921
ポインタは少し怪しいです。

一応作ってみます。

今後ともよろしくお願いします。

Re: 文字列の分割について

Posted: 2012年3月31日(土) 17:10
by net921
解決しました。
ありがとうございました。

Re: 文字列の分割について

Posted: 2012年3月31日(土) 17:11
by beatle
是非フォーラムルールをお読みくださいね。
フォーラムルール さんが書きました: また、解決した時は、「解決しました」とだけ言って去らず、ソースコードや解決した方法を明記して下さい。