1. scanf("\n%*c%d",&m);
Scanf 格式中,如果在%后面、格式字符前面加上一个“*”附加说明符,表示跳过该输入,输入的数据不放入变量中。
而输入的 '\n' 是中和掉输出的 \n
也可以换成
getchar();
scanf("%*c%d",&m);
而 *c 表示忽略一位 也可以改成
scanf("%*1d%d",&m);
2.
sscanf() - 从一个字符串中读进与指定格式相符的数据。
%n与其他格式说明符号不同。%n不向printf传递格式化信息,而是令printf把自己到该点已打出的字符总数放到相应变元指向的整形变量中。因此%n对于的变元必须是整形指针。
对printf调用返回之后,%n对于变元指向的变量中将包含有一个整数值,表示出现%n时已经由该次printf调用输出的字符数。
printf("this%n is a test\n",&count);//调用后count为4,this长度为4
sscanf(str+start,"%d%n",&d,&n); start+=n; n=读进数字的长度
3.对字符串数组排序
int cmp(const void*aa,const void*bb){
char* a=(char*)aa;
char* b=(char*)bb;
return strcmp(a,b);
}
qsort(str,len,sizeof(str[0]),cmp);
4.int a=33;
printf("%04d\n",a);
输出为 0033