当前位置: 代码迷 >> C语言 >> scanf()函数释疑(上/下)
  详细解决方案

scanf()函数释疑(上/下)

热度:767   发布时间:2006-09-04 16:28:00.0
以下是引用anthony634在2006-8-29 21:11:00的发言:

又一好帖子,我加点料下去,仅供娱乐:
scanf()中使用%n可以得到已经获得的字符个数。使用如下:
#include<stdio.h>

int main(void)
{
char strings[100];
int num;

scanf("%s%n",strings,&num);
printf("上面已经获得%d字符",num);
return 0;
}
注意:要区别于scanf()的返回值(成功获得的数据个数)。
3. 仅当scanf()用于字符串时的技巧------扫描集格式。通过下面的程序进行说明:
#include<stdio.h>

int main(void)
{
char strings[100];

scanf("%[1234567890]",strings);
printf("%s",strings);
return 0;
}
运行,输入:1234fjerkfj后,结果是:1234。作用是:如果输入的字符属于方括号内字符串中某个字符,那么就提
取该字符;如果一经发现不属于就结束提取。该方法会自动加上一个字符串结束符到已经
提取的字符后面。
如果要进行上述作用的逆命题,可以该为scanf("%[^1234567890]",strings); 它的作用是 :如果一经发现输入的字符属于方括号内字符串中某个字符,那么就结束提取;如果不属 于就提取该字符。该方法会自动加上一个字符串结束符到已经提取的字符后面。
注意:方括号两边不能空格,如:scanf("%[ 1234567890 ]",strings); scanf("%[ ^123
4567890 ]",strings)

[1234567890]这里用的是正则表达式吗?
----------------解决方案--------------------------------------------------------

  相关解决方案