天天看點

C語言常用庫函數(含詳細用法)

一、數學函數

調用數學函數時,要求在源檔案中包下以下指令行:

#include <math.h>

函數原型說明 功能 傳回值 說明
int abs( int x) 求整數x的絕對值 計算結果
double fabs(double x) 求雙精度實數x的絕對值 計算結果
double acos(double x) 計算cos-1(x)的值 計算結果 x在-1~1範圍内
double asin(double x) 計算sin-1(x)的值 計算結果 x在-1~1範圍内
double atan(double x) 計算tan-1(x)的值 計算結果
double atan2(double x) 計算tan-1(x/y)的值 計算結果
double cos(double x) 計算cos(x)的值 計算結果 x的機關為弧度
double cosh(double x) 計算雙曲餘弦cosh(x)的值 計算結果
double exp(double x) 求ex的值 計算結果
double fabs(double x) 求雙精度實數x的絕對值 計算結果
double floor(double x) 求不大于雙精度實數x的最大整數
double fmod(double x,double y) 求x/y整除後的雙精度餘數
double frexp(double val,int *exp) 把雙精度val分解尾數和以2為底的指數n,即val=x*2n,n存放在exp所指的變量中

傳回位數x

0.5≤x<1

double log(double x) 求㏑x 計算結果 x>0
double log10(double x) 求log10x 計算結果 x>0
double modf(double val,double *ip) 把雙精度val分解成整數部分和小數部分,整數部分存放在ip所指的變量中 傳回小數部分
double pow(double x,double y) 計算xy的值 計算結果
double sin(double x) 計算sin(x)的值 計算結果 x的機關為弧度
double sinh(double x) 計算x的雙曲正弦函數sinh(x)的值 計算結果
double sqrt(double x) 計算x的開方 計算結果 x≥0
double tan(double x) 計算tan(x) 計算結果
double tanh(double x) 計算x的雙曲正切函數tanh(x)的值 計算結果

二、字元函數

調用字元函數時,要求在源檔案中包下以下指令行:

#include <ctype.h>

函數原型說明 功能 傳回值
int isalnum(int ch) 檢查ch是否為字母或數字 是,傳回1;否則傳回0
int isalpha(int ch) 檢查ch是否為字母 是,傳回1;否則傳回0
int iscntrl(int ch) 檢查ch是否為控制字元 是,傳回1;否則傳回0
int isdigit(int ch) 檢查ch是否為數字 是,傳回1;否則傳回0
int isgraph(int ch) 檢查ch是否為ASCII碼值在ox21到ox7e的可列印字元(即不包含空格字元) 是,傳回1;否則傳回0
int islower(int ch) 檢查ch是否為小寫字母 是,傳回1;否則傳回0
int isprint(int ch) 檢查ch是否為包含空格符在内的可列印字元 是,傳回1;否則傳回0
int ispunct(int ch) 檢查ch是否為除了空格、字母、數字之外的可列印字元 是,傳回1;否則傳回0
int isspace(int ch) 檢查ch是否為空格、制表或換行符 是,傳回1;否則傳回0
int isupper(int ch) 檢查ch是否為大寫字母 是,傳回1;否則傳回0
int isxdigit(int ch) 檢查ch是否為16進制數 是,傳回1;否則傳回0
int tolower(int ch) 把ch中的字母轉換成小寫字母 傳回對應的小寫字母
int toupper(int ch) 把ch中的字母轉換成大寫字母 傳回對應的大寫字母

三、字元串函數

調用字元函數時,要求在源檔案中包下以下指令行:

#include <string.h>

函數原型說明 功能 傳回值
char *strcat(char *s1,char *s2) 把字元串s2接到s1後面 s1所指位址
char *strchr(char *s,int ch) 在s所指字元串中,找出第一次出現字元ch的位置 傳回找到的字元的位址,找不到傳回NULL
int strcmp(char *s1,char *s2) 對s1和s2所指字元串進行比較 s1<s2,傳回負數;s1= =s2,傳回0;s1>s2,傳回正數
char *strcpy(char *s1,char *s2) 把s2指向的串複制到s1指向的空間 s1 所指位址
unsigned strlen(char *s) 求字元串s的長度 傳回串中字元(不計最後的'\0')個數
char *strstr(char *s1,char *s2) 在s1所指字元串中,找出字元串s2第一次出現的位置 傳回找到的字元串的位址,找不到傳回NULL

四、輸入輸出函數

調用字元函數時,要求在源檔案中包下以下指令行:

#include <stdio.h>

函數原型說明 功能 傳回值
void clearer(FILE *fp) 清除與檔案指針fp有關的所有出錯資訊
int fclose(FILE *fp) 關閉fp所指的檔案,釋放檔案緩沖區 出錯傳回非0,否則傳回0
int feof (FILE *fp) 檢查檔案是否結束 遇檔案結束傳回非0,否則傳回0
int fgetc (FILE *fp) 從fp所指的檔案中取得下一個字元 出錯傳回EOF,否則傳回所讀字元
char *fgets(char *buf,int n, FILE *fp) 從fp所指的檔案中讀取一個長度為n-1的字元串,将其存入buf所指存儲區 傳回buf所指位址,若遇檔案結束或出錯傳回NULL
FILE *fopen(char *filename,char *mode) 以mode指定的方式打開名為filename的檔案 成功,傳回檔案指針(檔案資訊區的起始位址),否則傳回NULL
int fprintf(FILE *fp, char *format, args,…) 把args,…的值以format指定的格式輸出到fp指定的檔案中 實際輸出的字元數
int fputc(char ch, FILE *fp) 把ch中字元輸出到fp指定的檔案中 成功傳回該字元,否則傳回EOF
int fputs(char *str, FILE *fp) 把str所指字元串輸出到fp所指檔案 成功傳回非負整數,否則傳回-1(EOF)
int fread(char *pt,unsigned size,unsigned n, FILE *fp) 從fp所指檔案中讀取長度size為n個資料項存到pt所指檔案 讀取的資料項個數
int fscanf (FILE *fp, char *format,args,…) 從fp所指的檔案中按format指定的格式把輸入資料存入到args,…所指的記憶體中 已輸入的資料個數,遇檔案結束或出錯傳回0
int fseek (FILE *fp,long offer,int base) 移動fp所指檔案的位置指針 成功傳回目前位置,否則傳回非0
long ftell (FILE *fp) 求出fp所指檔案目前的讀寫位置 讀寫位置,出錯傳回 -1L
int fwrite(char *pt,unsigned size,unsigned n, FILE *fp) 把pt所指向的n*size個位元組輸入到fp所指檔案 輸出的資料項個數
int getc (FILE *fp) 從fp所指檔案中讀取一個字元 傳回所讀字元,若出錯或檔案結束傳回EOF
int getchar(void) 從标準輸入裝置讀取下一個字元 傳回所讀字元,若出錯或檔案結束傳回-1
char *gets(char *s) 從标準裝置讀取一行字元串放入s所指存儲區,用’\0’替換讀入的換行符 傳回s,出錯傳回NULL
int printf(char *format,args,…) 把args,…的值以format指定的格式輸出到标準輸出裝置 輸出字元的個數
int putc (int ch, FILE *fp) 同fputc 同fputc
int putchar(char ch) 把ch輸出到标準輸出裝置 傳回輸出的字元,若出錯則傳回EOF
int puts(char *str) 把str所指字元串輸出到标準裝置,将’\0’轉成回車換行符 傳回換行符,若出錯,傳回EOF
int rename(char *oldname,char *newname) 把oldname所指檔案名改為newname所指檔案名 成功傳回0,出錯傳回-1
void rewind(FILE *fp) 将檔案位置指針置于檔案開頭
int scanf(char *format,args,…) 從标準輸入裝置按format指定的格式把輸入資料存入到args,…所指的記憶體中 已輸入的資料的個數

五、動态配置設定函數和随機函數

調用字元函數時,要求在源檔案中包下以下指令行:

#include <stdlib.h>

函數原型說明 功能 傳回值
void *calloc(unsigned n,unsigned size) 配置設定n個資料項的記憶體空間,每個資料項的大小為size個位元組 配置設定記憶體單元的起始位址;如不成功,傳回0
void *free(void *p) 釋放p所指的記憶體區
void *malloc(unsigned size) 配置設定size個位元組的存儲空間 配置設定記憶體空間的位址;如不成功,傳回0
void *realloc(void *p,unsigned size) 把p所指記憶體區的大小改為size個位元組 新配置設定記憶體空間的位址;如不成功,傳回0
int rand(void) 産生0~32767的随機整數 傳回一個随機整數
void exit(int state)

繼續閱讀