scan中的扫描集行为

use*_*523 6 c scanf

我试图在scanf中使用scanset做一些东西但是卡在某处.

我写的时候

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

input : AHJHkiuy
Output: AHJH
Run Code Online (Sandbox Code Playgroud)

有了这个,

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

input: abcd ABCD hie
output: abcd ABCD hie       /*that is reading white space also (till \n) */
Run Code Online (Sandbox Code Playgroud)

现在我的问题是,如果我提供输入:

ABCDahaj ahajABCD ajak12347ab
Run Code Online (Sandbox Code Playgroud)

并希望输出为:

ABCDahaj ahajABCD ajak
Run Code Online (Sandbox Code Playgroud)

那么格式字符串应该如何写?也就是说,如何使用这个扫描设备?

tim*_*rau 5

您可以稍微扩展您的示例并实现您的目标.

scanf("%[A-Za-z ]", s1);
Run Code Online (Sandbox Code Playgroud)