6

scanf で scanset を使って何かをしようとしましたが、どこかで動かなくなってしまいました。

私が書くとき

char s1[250];
scanf("%[A-Z]",s1);

input : AHJHkiuy
Output: AHJH

そしてこれで、

scanf("%[^\n]",s1);

input: abcd ABCD hie
output: abcd ABCD hie       /*that is reading white space also (till \n) */

今私の質問は、次のように入力した場合です。

ABCDahaj ahajABCD ajak12347ab

出力を次のようにします。

ABCDahaj ahajABCD ajak

では、フォーマット文字列はどのように記述すればよいでしょうか? つまり、この scanset をどのように使用すればよいのでしょうか?

4

2 に答える 2

5

例を少し拡張して、目標を達成できます。

scanf("%[A-Za-z ]", s1);
于 2012-07-24T13:50:03.647 に答える
2

これを行う別の方法は次のとおりです。

scanf("%[^0-9]", s1); /* Scans everything until a digit */
于 2016-01-31T13:48:11.913 に答える