在沒有IDE的時候,記住一些常用的庫函數的函數名、參數、基本用法及注意事項是很有必要的。
參照Linux_C_HS.chm的目錄,我大致將常用的函數分為一下幾類:
* 函數名稱 用法 備注 * *1. double atof(const char *nptr); convert a string to a double 不檢查錯誤,不對就返回0 * *2. int atoi(const char *nptr); convert a string to an integer UP * *3. long long atoll(const char *nptr); UP UP * *4. float strtof(const char *nptr, char **endptr); UP If endptr is not NULL, a pointer to the character after the last character used in the conversion is stored in the location referenced by endptr. * *5. int toascii(int c); convert character to ASCII The value returned is that of the converted character. * *6. int toupper(int c); convert letter to upper or lower case The value returned is that of the converted letter, or c if the conversion was not possible. * *7. int tolower(int c); UP UP * *8. char *gcvt(double number, size_t ndigit, char *buf); convert a floating-point returns the address of the string pointed to by buf.
* 函數名稱 用法 備注 * *1. int isalnum(int c); 是否是英文或者數字 正確返回1,錯誤返回0 * *2. int isalpha(int c); 是否是英文字母 UP * *3. int isascii(int c); 是否是ASCII 碼 UP * *4. int isblank(int c); a space or a tab NT * *5. int isgraph(int c); 可打印字符,不包括空格 NT * *6. int iscntrl(int c); NT NT * *7. int isdigit(int c); NT NT * *8. int isprint(int c); 可打印字符,包括空格 NT * *9. int ispunct(int c); 標點符號或特殊字符 NT * *10. int isspace(int c); space, form-feed ('\f'), NT newline ('\n'), carriage return ('\r'), horizontal tab ('\t'), and vertical tab ('\v'). * *11. int isupper(int c); NT NT * *12. int isxdigit(int c); 十六進制 NT *
* 函數名稱 用法 備注 * *1. void *malloc(size_t size); NT 默認不初始化 * *2. void *calloc(size_t nmemb, size_t size); 申請size個nmemb大小的空間 默認初始為0 * *3. void *realloc(void *ptr, size_t size); 擴展內存區域 新擴展的部分默認不初始化 * *4. void free(void *ptr); 釋放內存區域 NT
如上,是對字符串轉換、字符串測試及內存控制歸納。
字符處理函數
本類別函數用於對單個字符進行處理,包括字符的類別測試和字符的大小寫轉換
頭文件 ctype.h
函數列表<>
函數類別 函數用途 詳細說明
字符測試 是否字母和數字 isalnum
是否字母 isalpha
是否控制字符 iscntrl
是否數字 isdigit
是否可顯示字符(除空格外) isgraph
是否可顯示字符(包括空格) isprint
是否既不是空格,又不是字母和數字的可顯示字符 ispunct
是否空格 isspace
是否大寫字母 isupper
是否16進制數字(0-9,A-F)字符 isxdigit
字符大小寫轉換函數 轉換為大寫字母 toupper
轉換為小寫字母 tolower
地區化
本類別的函數用於處理不同國家的語言差異。
頭文件 local.h
函數列表
函數類別 函數用途 詳細說明
地區控制 地區設置 setlocale
數字格式約定查詢 國家的貨幣、日期、時間等的格式轉換 localeconv
數學函數
本分類給出了各種數學計算函數,必須提醒的是ANSI C標准中的數據格式並不符合IEEE754標准,一些C語言編譯器卻遵循IEEE754(例如frinklin C51)
頭文件 math.h
函數列表
函數類別 函數用途 詳細說明
錯誤條件處理 定義域錯誤(函數的輸入參數值不在規定的范圍內)
值域錯誤(函數的返回值不在規定的范圍內)
三角函數 反余弦 acos
反正弦 asin
反正切 atan
反正切2 atan2
余弦 cos
正弦 sin
正切 tan
雙曲函數 雙曲余弦 cosh
雙曲正弦 sinh
雙曲正切 tanh
指數和對數 指數函數 exp
指數分解函數 frexp
乘積指數函數 fdexp
自然對數 log
以10為底的對數 log10
浮點數分解函數 modf
冪函數 冪函數 pow
平方根函數 sqrt
整數截斷,絕對值和求余數函數 求下限接近整數 ceil
絕對值 fabs
求上限接近整數 floor
求余數 fmod
本分類函數用於實現在不同底函數之間直接跳轉代碼。 頭文件 setjmp.h io.h
函數列表
函數類別 函數用途 詳細說明
保存調用環境 setjmp
恢復調用環境 longjmp
信號處理
該分類函數用於處理那些在程序執行過程中發生例外的情況。
頭文件 signal.h
函數列表
函數類別 函數用途 詳細說明
指定信號處理函數 signal
發送信號 raise
可變參數處理
本類函數用於實現諸如printf,scanf等參數數量可變底函數。
頭文件 stdarg.h
函數列表
函數類別 函數用途 詳細說明
可變參數訪問宏 可變參數開始宏 va_start
可變參數結束宏 va_end
可變參數訪問宏 訪問下一個可變參數宏 va_arg
輸入輸出函數
該分類用於處理包括文件、控制台等各種輸入輸出設備,各種函數以“流”的方式實現
頭文件 stdio.h
函數列表
函數類別 函數用途 詳細說明
文件操作
刪除文件 remove
修改文件名稱 rename
生成臨時文件名稱 tmpfile
得到臨時文件路徑 tmpnam
文件訪問 關閉文件 fclose
刷新緩沖區 fflush
打開文件 fopen
將已存在的流指針和新文件連接 freope......余下全文>>
1、itoa
功 能:把一整數轉換為字符串
用 法:char *itoa(int value, char *string, int radix);
詳細解釋:itoa是英文integer to array(將int整型數轉化為一個字符串,並將值保存在數組string中)的縮寫.
參數:
value: 待轉化的整數。
radix: 是基數的意思,即先將value轉化為radix進制的數,范圍介於2-36,比如10表示10進制,16表示16進制。
* string: 保存轉換後得到的字符串。
返回值:
char * : 指向生成的字符串, 同*string。
備注:該函數的頭文件是"stdlib.h"
2、ltoa
功 能:把一長整形轉換為字符串
用 法:char *ltoa(long value, char *string, int radix);
詳細解釋:itoa是英文long integer to array(將long int長整型數轉化為一個字符串,並將值保存在數組string中)的縮寫.
參數:
value: 待轉化的長整型數。
radix: 是基數的意思,即先將value轉化為radix進制的數,范圍介於2-36,比如10表示10進制,16表示16進制。
* string: 保存轉換後得到的字符串。
返回值:
char * : 指向生成的字符串, 同*string。
備注:該函數的頭文件是"stdlib.h"
3、ultoa
功 能:把一無符號長整形轉換為字符串
用 法:char *ultoa(unsigned long value, char *string, int radix);
詳細解釋:itoa是英文unsigned long integer to array(將unsigned long int無符號長整型數轉化為一個字符串,並將值保存在數組string中)的縮寫.
參數:
value: 待轉化的無符號長整型數。
radix: 是基數的意思,即先將value轉化為radix進制的數,范圍介於2-36,比如10表示10進制,16表示16進制。
* string: 保存轉換後得到的字符串。
返回值:
char * : 指向生成的字符串, 同*string。
備注:該函數的頭文件是"stdlib.h"
4、gcvt
功 能:把浮點型數轉換為字符串,取四捨五入
用 法:char *gcvt(double value, int ndigit, char *buf);
詳細解釋:gcvt()用來將參數number轉換成ASCII碼字符串,參數ndigits表示顯示的位數。gcvt()與ecvt()和fcvt()不同的地方在於,gcvt()所轉換後的字符串包含小數點或正負符號。若轉換成功,轉換後的字符串會放在參數buf指針所指的空間。
參 數:
value:待轉化的浮點數。
ndigit:存儲的有效數字位數。
*buf:結果的存儲位置。
返回值:
char * :指向生成的字符串, 同*buf。
備注:該函數的頭文件是"stdlib.h"
5、ecvt
功 能:將雙精度浮點型數轉換為字符串,轉......余下全文>>