實用函式
在標頭檔案中說明了用於數值轉換、記憶體分配以及具有其他相似任務的函式。
1 atof
#include
double atof(const char *str);
把字串str轉換成double型別。等價於:strtod(str, (char**)null)。
2 atoi
#include
int atoi(const char *str);
把字串str轉換成int型別。等價於:(int)strtol(str, (char**)null, 10)。
3 atol
#include
long atol(const char *str);
把字串str轉換成long型別。等價於:strtol(str, (char**)null, 10)。
4 strtod
#include
double strtod(const char *start, char **end);
把字串start的字首轉換成double型別。在轉換中跳過start的前導空白符,然後逐個讀入構成數的字元,任何非浮點數成分的字元都會終止上述過程。如果end不為null,則把未轉換部分的指標儲存在*end中。
如果結果上溢,返回帶有適當符號的huge_val,如果結果下溢,那麼函式返回0。在這兩種情況下,errno均被置為erange。
5 strtol
#include
long int strtol(const char *start, char **end, int radix);
把字串start的字首轉換成long型別,在轉換中跳過start的前導空白符。如果end不為null,則把未轉換部分的指標儲存在*end中。
如果radix的值在2到36間之間,那麼轉換按該基數進行;如果radix為0,則基數為八進位制、十進位制、十六進製制,以0為前導的是八進位制,以0x或0x為前導的是十六進製制。無論在哪種情況下,串中的字母是表示10到radix-1之間數字的字母。如果radix是16,可以加上前導0x或0x。
如果結果上溢,則依據結果的符號返回long_max或long_min,置errno為erange。
6 strtoul
#include
unsigned long int strtoul(const char *start, char **end, int radix);
與strtol()類似,只是結果為unsigned long型別,溢位時值為ulong_max。
7 rand
#include
int rand(void);
產生乙個0到rand_max之間的偽隨機整數。rand_max值至少為32767。
8 srand
#include
void srand(unsigned int seed);
設定新的偽隨機數序列的種子為seed。種子的初值為1。
9 calloc
#include
void *calloc(size_t num, size_t size);
為num個大小為size的物件組成的陣列分配足夠的記憶體,並返回指向所分配區域的第乙個位元組的指標;如果記憶體不足以滿足要求,則返回null。
分配的記憶體區域中的所有位被初始化為0。
10 malloc
#include
void *malloc(size_t size);
為大小為size的物件分配足夠的記憶體,並返回指向所分配區域的第乙個位元組的指標;如果記憶體不足以滿足要求,則返回null。
不對分配的記憶體區域進行初始化。
11 realloc
#include
void *realloc(void *ptr, size_t size);
將ptr指向的記憶體區域的大小改為size個位元組。如果新分配的記憶體比原記憶體大,那麼原記憶體的內容保持不變,增加的空間不進行初始化。如果新分配的記憶體比原記憶體小,那麼新記憶體保持原記憶體區中前size位元組的內容。函式返回指向新分配空間的指標。如果不能滿足要求,則返回null,原ptr指向的記憶體區域保持不變。
如果ptr為null,則行為等價於malloc(size)。
如果size為0,則行為等價於free(ptr)。
12 free
#include
void free(void *ptr);
釋放ptr指向的記憶體空間,若ptr為null,則什麼也不做。ptr必須指向先前用動態分配函式malloc、realloc或calloc分配的空間。
13 abort
#include
void abort(void);
使程式非正常終止。其功能類似於raise(sigabrt)。
14 exit
#include
void exit(int status);
使程式正常終止。atexit函式以與註冊相反的順序被呼叫,所有開啟的檔案被重新整理,所有開啟的流被關閉。status的值如何被返回依具體的實現而定,但用0表示正常終止,也可用值exit_success和exit_failure。
15 atexit
#include
int atexit(void (*func)(void));
註冊在程式正常終止時所要呼叫的函式func。如果成功註冊,則函式返回0值,否則返回非0值。
16 system
#include
int system(const char *str);
把字串str傳送給執行環境。如果str為null,那麼在存在命令處理程式時,返回0值。如果str的值非null,則返回值與具體的實現有關。
17 getenv
#include
char *getenv(const char *name);
返回與name相關的環境字串。如果該字串不存在,則返回null。其細節與具體的實現有關。
18 bsearch
#include
void *bsearch(const void *key, const void *base, size_t n, size_t size, int (*compare)(const void *, const void *));
在base[0]...base[n-1]之間查詢與*key匹配的項。size指出每個元素占有的位元組數。函式返回乙個指向匹配項的指標,若不存在匹配則返回null。
函式指標compare指向的函式把關鍵字key和陣列元素比較,比較函式的形式為:
int func_name(const void *arg1, const void *arg2);
arg1是key指標,arg2是陣列元素指標。
返回值必須如下:
陣列base必須按公升序排列(與compare函式定義的大小次序一致)。
19 qsort
#include
void qsort(void *base, size_t n, size_t size, int (*compare)(const void *, const void *));
對由n個大小為size的物件構成的陣列base進行公升序排序。
比較函式compare的形式如下:
int func_name(const void *arg1, const voie *arg2);
其返回值必須如下所示:
20 abs
#include
int abs(int num);
返回int變數num的絕對值。
21 labs
#include
long labs(long int num);
返回long型別變數num的絕對值。
22 div
#include
div_t div(int numerator, int denominator);
返回numerator/denominator的商和餘數,結果分別儲存在結構型別div_t的兩個int成員quot和rem中。
23 ldiv
#include
ldiv_t div(long int numerator, long int denominator);
返回numerator/denominator的商和餘數,結果分別儲存在結構型別ldiv_t的兩個long成員quot和rem中。
C語言標準庫函式與功能講解
1 數學函式 數學庫函式宣告在 math.h 中,主要有 abs x 求整型數x 的絕對值 cos x x 弧度 的余弦 fabs x 求浮點數x 的絕對值 ceil x 求不小於x 的最小整數 floor x 求不大於x 的最小整數 log x 求x 的自然對數 log10 x 求x 的對數 底為...
常用的字串處理庫函式的C語言實現
if 0 給整數陣列賦值數字,非數字則返回0,數字則返回數字 define bufsize 100 define size 5 char buf bufsize int bufp 0 int getch void void ungetch int c int getint int pn if isd...
c語言基礎之string庫函式基本功能實現
include include include using namespace std intmy strlen const char src include include include using namespace std char my strcpy char src,const char...