1. 程式人生 > >C語言常用庫函式(含詳細用法)

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)

程式終止執行,返回呼叫過程,state為0正常終止,非0非正常終止