9

次のような文字列から単語と数字をスキャンしようとしています: " hello, world, I, 287876, 6.0 " <-- この文字列はchar配列 (文字列) に格納されています。それらを異なる変数に割り当てて、次のようにします

     char a = "hello"
     char b = "world"
     char c = "I"
     unsigned long d = 287876
     float e = 6.0

通常の scanf は、空白に達すると stdin からの読み取りを停止することを知っています。そこで、sscanf が「,」 (カンマ)に到達したときに読み取りを停止させる方法があるのではないかと考えていました。

ライブラリを調べて、sscanfがアルファベットと数字のみを読み取るためのフォーマットを見つけました。そんなものは見つからなかったので、もう一度見たほうがいいかもしれません。

何か助けはありますか?前もって感謝します :)

4

4 に答える 4

1

この例を使用strtokすると役立つはずです。

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

int main ()
{
  char str[] ="hello, world, I, 287876, 6.0" ;
  char * pch;
  printf ("Splitting string \"%s\" into tokens:\n",str);
  pch = strtok (str,",");
  while (pch != NULL)
  {
    printf ("%s\n",pch);
    pch = strtok (NULL, ",");
  }
  return 0;
}
于 2013-04-15T12:20:30.620 に答える
-2

strtokand/orのドキュメントを参照してくださいstrtok_r

于 2013-04-15T12:17:36.957 に答える