常用的函数

<stdio.h>标准输入输出函数
其中包含的一些常用的函数有
scanf(); scanf("%c",s)跟scanf(" %c",s)的区别,他们具有不同的效果。前者跟gerchat()效果一样
后者的作用是接受第一个非空字符,会自动忽略空格,回车换行,制表等。因此这里要注意。
scanf("%[^/n]",s) 的作用是接收输入的任何字符,除了‘/n’。
sscanf()   sprintf()
这两个函数是专门用来进行字符串输入输出的操作的,下面举一个小例子
int n;char s[]="1234";
sscanf(s,"%d",&n);这个语句的作用是n的值被赋予1234
<string.h> 字符串处理函数库
这里面的关于字符串的操作比较多,就说一下处理函数mem*这一系列,希望能记住一点点。
memset(a,0,sizeof(a));这个函数的作用主要是给a这个数组初始化的。但是这个函数的操作是把数组当成字符串来进行操作的,也就是说在对整数类型的数字进行操作的时候,除了清0和全部清为-1以外,其他的初始化一定要慎重使用。
memcpy(b,a,sizeof(a));的作用是把数组a的值赋给b。
memcmp(数组1,数组2,要比较长度L) 数组比较,把两数组的前L个字节看成是两个字符串做strcmp一样的比较
memmove(目标数组,被拷贝数组,要拷贝长度) 数组复制,其和memcpy的不同之处是两个数组可以有重叠部分,也就是可以实现fp中move的作用
例子  memmove(a+i+1,a+i,sizeof(a[0]*k));
<stdlib.h>标准函数库
srand((unsigned)time(null));
rand();rand不接受参数,一般是返回一个unsigned类型的。可以用取模来得到想要的随即数在同一次运行中,初始化种子后得到的rand是相同的。这样更加方便调试。如果想得到不同的就要在依次开始就初始化一次,仅仅初始化一次。
<limits.h>
这个库里面没有函数,但是有一些常用的极限,比如INT_MAX(int变量的上限)  LONG_MAX,ULONG_MAX(unsigned long的上限)等等,所以是很有用的。
<math.h>这个库里面用到的数学函数,值得注意的有:pow是个鸡肋,一般不要使用

gets和puts分别是整行读入和输出字符串。gets由于可能回导致意外结果的发生,通常不推荐使用,但是若给定了字符串的长度,使用起来是是十分安全的。同样还有fgets和fputs.据说gets puts 系列比 scanf(%s)  scanf("%[^/n]")要快不少。

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章