C言語で、
char buf[256];
char c1[10],c2[10],c3[10];
sscanf(buf,"%s%s%s",c1,c2,c3)
という、バッファから文字列を読み取るとき、
bufが、
"aa bb","aa,bb","aa, bb"の場合に、
c1 = "aa bb"
c2 = "aa,bb"
c3 = "aa, bb"
が入るようにする方法をご存知でしたら教えてください。
%[^\"]sを使ってみたのですが、c1しか格納できませんでした。
(条件)
" "かつ,で区切られた部分をパラメタに格納する。
" "内には、空白や,が入る。

このQ&Aに関連する最新のQ&A

A 回答 (1件)

こんな感じ。



#include <stdio.h>

int main(void)
{
  char buf[256] = "\"aa bb\",\"aa,bb\",\"aa, bb\"";
  char c1[10], c2[10], c3[10];
  printf("%s\n", buf);
  sscanf(buf, "\"%[^\"]\",\"%[^\"]\",\"%[^\"]\"", c1, c2, c3);
  printf("c1=%s\n", c1);
  printf("c2=%s\n", c2);
  printf("c3=%s\n", c3);
  return 0;
}
    • good
    • 0
この回答へのお礼

どうもありがとうございました。
昨日、丸1日悩んでしまいました。
おかげさまで、うまくいきました。

今回はじめて「教えて!goo」で質問をしました。
a-kuma さまには、本当に感謝です。

お礼日時:2001/04/06 17:24

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人が検索しているワード


人気Q&Aランキング

おすすめ情報