
類型size_t(sizeof運算符的結果類型,是某個無符號整型);
類型ptrdiff_t(兩個指針相減運算的結果類型,是某個有符號整型);
類型wchar_t(寬字符類型,是一個整型,其中足以存放本系統所支持的所有本地環境中的字符集的所有編碼值。這里還保證空字符的編碼值為0);
符號常量NULL(空指針值);
宏offsetot?(這是一個帶參數的宏,第一個參數應是一個結構類型,第二個參數應是結構成員名。
offsetot(s,m)FILE *fopen(const char *filename, const char *mode);int fclose(FILE * stream);
int fgetc(FILE *fp);int fputc(int c, FILE *fp);
#define getchar() getc(stdin)#define putchar(c) putc(c, stdout)int ungetc(int c, FILE* stream); //把字符 c 退回流 stream
格式化輸入輸出:
int scanf(const char *format, ...);int printf(const char *format, ...);int fscanf(FILE *stream, const char *format, ...);int fprintf(FILE *stream, const char *format, ...);int sscanf(char *s, const char *format, ...);int sprintf(char *s, const char *format, ...);
行式輸入輸出:
char *fgets(char *buffer, int n, FILE *stream);int fputs(const char *buffer, FILE *stream);char *gets(char *s);int puts(const char *s);
直接輸入輸出:
size_t fread(void *pointer, size_t size, size_t num, FILE *stream);size_t fwrite(const void *pointer, size_t size, size_t num, FILE *stream);
三角函數 | sin | cos | tan |
反三角函數 | asin | acos | atan |
雙曲函數 | sinh | cosh | tanh |
2、指數和對數函數
以e為底的指數函數 | exp |
自然對數函數 | log |
以10為底的對數函數 | log10 |
3.其他函數
平方根 | sqrt |
絕對值 | fabs |
乘冪,第一個參數作為底,第二個是指數 | double pow(double, double) |
實數的余數,兩個參數分別是被除數和除數 | double fmod(double, double) |
函數原型 | 意義解釋 |
ceil(x) | 求出不小于x的最小整數(返回與這個整數對應的double值) |
floor(x) | 求出不大于x的最大整數(返回與這個整數對應的double值) |
atan2(y, x) | 求出?tan-1(y/x),其值的范圍是[-pai,pai]? |
ldexp(x, int n) | 求出x*2n |
frexp(x, int?*exp) | 把?x分解為?y*2n,?是位于區間?[1/2,1)里的一個小數,作為函數結果返回,整數n?通過指針*exp返回(應提供一個int變量地址)。當x?為0時這兩個結果的值都是0 |
modf(x, double *ip) | 把x分解為小數部分和整數部分,小數部分作為函數返回值,整數部分通過指針*ip返回。 |
int isalpha(c) | c是字母字符 |
int isdigit(c) | c是數字字符 |
int isalnum(c) | c是字母或數字字符 |
int isspace(c) | c是空格、制表符、換行符 |
int isupper(c) | c是大寫字母 |
int islower(c) | c是小寫字母 |
int iscntrl(c) | c是控制字符 |
int isprint(c) | c是可打印字符,包括空格 |
int isgraph(c) | c是可打印字符,不包括空格 |
int isxdigit(c) | c是十六進制數字字符 |
int ispunct(c) | c是標點符號 |
int tolower(int c) | 當c是大寫字母時返回對應小寫字母,否則返回c本身 |
int toupper(int c) | 當c是小寫字母時返回對應大寫字母,否則返回c本身 |
函數原型 | 意義解釋 |
size_t strlen(cs) | 求出cs的長度 |
char *strcpy(s,ct) | 把ct復制到s。要求s指定足夠大的字符數組 |
char *strncpy(s,ct,n) | 把ct里的至多n個字符復制到s。要求s指定一個足夠大的字符數組。如果ct里的字符不夠n個,就在s里填充空字符。 |
char *strcat(s,ct) | 把ct里的字符復制到s里已有的字符串之后。s應指定一個保存著字符串,而且足夠大的字符數組。 |
char *strncat(s,ct,n) | 把ct里的至多n個字符復制到s里已有的字符串之后。s應指定一個保存著字符串,而且足夠大的字符數組。 |
int strcmp(cs,ct) | 比較字符串cs和ct的大小,在cs大于、等于、小于ct時分別返回正值、0、負值。 |
int strncmp(cs,ct,n) | 比較字符串cs和ct的大小,至多比較n個字符。在cs大于、等于、小于ct時分別返回正值、0、負值。 |
char *strchr(cs,c) | 在cs中查尋c并返回c第一個出現的位置,用指向這個位置的指針表示。當cs里沒有c時返回值NULL |
char *strrchr(cs,c) | 在cs中查尋c并返回c最后一個出現的位置,沒有時返回NULL |
size_t strspn(cs,ct) | 由cs起確定一段全由ct里的字符組成的序列,返回其長度 |
size_t strcspn(cs,ct) | 由cs起確定一段全由非ct里的字符組成的序列,返回其長度 |
char *strpbrk(cs,ct) | 在cs里查尋ct里的字符,返回第一個滿足條件的字符出現的位置,沒有時返回NULL |
char *strstr(cs,ct) | 在cs中查尋串ct(查詢子串),返回ct作為cs的子串的第一個出現的位置,ct未出現在cs里時返回NULL |
char *strerror(n) | 返回與錯誤編號n相關的錯誤信息串(指向該錯誤信息串的指針) |
char *strtok(s,ct) | 在s中查尋由ct中的字符作為分隔符而形成的單詞 |
函數原型 | 意義解釋 |
void *memcpy(s,ct,n) | 從ct處復制n個字符到s處,返回s |
void *memmove(s,ct,n) | 從ct處復制n個字符到s處,返回s,這里的兩個段允許重疊 |
int memcmp(cs,ct,n) | 比較由cs和ct開始的n個字符,返回值定義同strcmp |
void *memchr(cs,c,n) | 在n個字符的范圍內查尋c在cs中的第一次出現,如果找到,返回該位置的指針值,否則返回NULL |
void *memset(s,c,n) | 將s的前n個字符設置為c,返回s |
函數原型 | 意義解釋 |
int rand(void) | 生成一個0到RAND_MAX的隨機整數 |
void srand(unsigned seed) | 用seed為隨后的隨機數生成設置種子值 |
2、動態存儲分配函數
函數原型 | 意義解釋 |
void *calloc(size_t n, size_t size) | 分配一塊存儲,其中足以存放n個大小為size的對象,并將所有字節用0字符填充。返回該存儲塊的地址。不能滿足時返回NULL |
void *malloc(size_t size) | 分配一塊足以存放大小為size的存儲,返回該存儲塊的地址,不能滿足時返回NULL |
void *realloc(void *p, size_t size) | 將p所指存儲塊調整為大小size,返回新塊的地址。如能滿足要求,新塊的內容與原塊一致;不能滿足要求時返回NULL,此時原塊不變 |
void free(void *p) | 釋放以前分配的動態存儲塊 |
函數原型 | 意義解釋 |
int abs(int n) | 求整數的絕對值 |
long labs(long n) | 求長整數的絕對值 |
div_t div(int n, int m) | 求n/m,商和余數分別存放到結果結構的對應成員里 |
ldiv_t ldiv(long n, long m) | 同上,參數為長整數 |
4、數值轉換
函數原型 | 意義解釋 |
double atof(const char *s) | 由串s構造一個雙精度值 |
int atoi(const char *s) | 由串s構造一個整數值 |
long atol(const char *s) | 由串s構造一個長整數值 |
void abort(void);void exit(int status);int atexit(void (*fcn)(void))int system(const char *s);char *getenv(const char *s);void *bsearch(const void *key, const void *base, size_t n, size_t size, int (*cmp)(const void *keyval, const void *datum));void qsort(void *base, size_t n, size_t size, int (*cmp)(const void *, const void *));