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

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

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 回答