2016-06-16 13 views
0

scanfを使用しています。コンマの前に式を読み込もうとしています。Sscanfは式のカンマを忘れることを忘れました

sscanf(some_string, 
     "%s %[ [email protected]:/|-_^,],read_other_stuff:%s....]", 
     &string1, &string2... etc); 

Sscanfは%[.0-9a-zA-Z!@:/ | -_ ^]まですべてを読み込みます。この形式の書式は、残りの文字列をすべてコンマで停止することなく、予想通りに食べます。 1は、それがコンマで終了させると、,までの文字列を解析するには、それを(スペースを含めて、コンマ以外の句読点など)他のすべて

+0

「%[.0-9a-zA-Z!@:/ | -_ ^]」の中の '、'を取るこ​​とで、ステップ1になります。たぶん '%* [^、]、' 'を使うのでしょうか?いくつかの例を投稿すると助けになります。少なくともカンマ以外のものをスキャンしない限り、%* [^、] "'は失敗します。 – chux

+0

'string 'は''、 ''を含んでいますか? – chux

+0

ああ...そう... ^、カンマを除外しません。それは単に "^"と "、"が許可されていると言いますか?もしそうなら、それを修正するかもしれないと思います。 (ありがとう) – RebeccaK375

答えて

0
  1. を読んでいましたどのように

    、コードが使用することができますstrchr(some_string, ',')

  2. 2つの通話

    int n = 0; 
    sscanf(some_string, "%*[^,]%n", &n); 
    // some_string[n] is either \0 or , 
    
    char string1[100]; 
    string1[0] = '\0'; 
    sscanf(&some_string[n], ",%99s", string1); 
    
    puts(string1); 
    
を使用し、 sscanf()を使用するには

お勧め#1

関連する問題