文字列の分割について

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
net921
記事: 70
登録日時: 13年前

文字列の分割について

#1

投稿記事 by net921 » 13年前

今、「,」ごとで文字列を分割しています。
一応下記のように分割して表示までできたのですが任意の変数に入れることができません。

コード:

#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 使用しています。
最後に編集したユーザー net921 on 2012年3月31日(土) 17:09 [ 編集 1 回目 ]

fulls
記事: 72
登録日時: 14年前
住所: 埼玉

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

#2

投稿記事 by fulls » 13年前

これをdataという変数に入れたいのですがどのようにやればいいのでしょうか。
この"これ"というのは分割された文字列のことでいいのですか?
あとdataという変数は何ですか?
最後に編集したユーザー fulls on 2012年3月30日(金) 17:45 [ 編集 1 回目 ]

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 14年前
住所: 東海地方
連絡を取る:

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

#3

投稿記事 by softya(ソフト屋) » 13年前

data変数の型やらはどうなっているんでしょうか?
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

net921
記事: 70
登録日時: 13年前

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

#4

投稿記事 by net921 » 13年前

"これ"というのは分割された文字列 そのとうりです。
data変数の型は文字列が入るような型です。適当な型です。

fulls
記事: 72
登録日時: 14年前
住所: 埼玉

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

#5

投稿記事 by fulls » 13年前

そのソースコードではpに分割された文字列が入っているようなので、pをstrcpyとかでコピーすればいいのではないでしょうか。

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 14年前
住所: 東海地方
連絡を取る:

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

#6

投稿記事 by softya(ソフト屋) » 13年前

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

ひとつの変数にはひとつの値しか入れれませんので複数の値を入れることは出来ません。
なのでnet921さんが知っている方法で複数の値を入れる方法を明示して下さい。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

net921
記事: 70
登録日時: 13年前

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

#7

投稿記事 by net921 » 13年前

char data[11][100];

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

課題ではありません。

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 14年前
住所: 東海地方
連絡を取る:

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

#8

投稿記事 by softya(ソフト屋) » 13年前

では、その配列にstrcpyをつかってコピーしてみて下さい。
作るのは基本的にnet921さんで分からない事や疑問点はサポートします。
文字列配列やポインタは理解されていますよね?

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

あと
char data[11][100];
では要素数と数が合いません。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

net921
記事: 70
登録日時: 13年前

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

#9

投稿記事 by net921 » 13年前

ポインタは少し怪しいです。

一応作ってみます。

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

net921
記事: 70
登録日時: 13年前

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

#10

投稿記事 by net921 » 13年前

解決しました。
ありがとうございました。

beatle
記事: 1281
登録日時: 13年前
住所: 埼玉
連絡を取る:

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

#11

投稿記事 by beatle » 13年前

是非フォーラムルールをお読みくださいね。
フォーラムルール さんが書きました: また、解決した時は、「解決しました」とだけ言って去らず、ソースコードや解決した方法を明記して下さい。

閉鎖

“C言語何でも質問掲示板” へ戻る