0

scanf を使用してスペースを含む入力文字列を取得するには、次のような呼び出しを使用します。

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

これは、改行までのすべての文字に一致します。しかし、scanf の別の呼び出しを見つけました。

scanf("%[ A-Za-z]",str);

私にとっては両方とも正常に動作しています!しかし、2つの違いは何なのかわかりません!?

スペースを含む文字列を処理する場合、どの方法を使用すればよいですか?

4

2 に答える 2

5

2つの違いは何ですか!?

1 つ目は改行文字まですべてをスキャンし、2 つ目は文字とスペースのみをスキャンします。

スペースを含む文字列を処理する場合、どの方法を使用すればよいですか?

どちらも、fgets()代わりに見てください:

char buf[LINE_MAX];
fgets(buf, sizeof(buf), stdin);
于 2013-06-08T15:13:19.687 に答える