Keil c51常用庫函數匯總參考_第1頁
Keil c51常用庫函數匯總參考_第2頁
Keil c51常用庫函數匯總參考_第3頁
Keil c51常用庫函數匯總參考_第4頁
Keil c51常用庫函數匯總參考_第5頁
已閱讀5頁,還剩12頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、Keil c51函數參考一、數學函數<math.h >(1)cabs原型:char cabs(char val);功能:cabs函數取val的絕對值。參數:一字節數val。返回:cabs返回val的絕對值。(2)abs原型:Int abs(int val);功能:求絕對值參數:val整型數返回:val的絕對值(3)labs原型:long labs(long val);功能:labs函數確定長整數val的絕對值。返回:val的絕對值。(4)fabs原型:float fabs(float val);功能:fabs函數確定浮點數val的絕對值。參數:返回:fabs返回val的絕對值。(5

2、)sqrt原型:float sprt(float x);功能:sqrt函數計算x的平方根。返回:sqrt函數返回x的正平方根。(6)exp原型:float exp(float x);功能:exp函數計算自然對數中e的x次冪。e2.71828182845953581496,是無限循環小數。返回:ex 的值。(7)log原型:float log(float val);功能:log函數計算浮點數val的自然對數。自然對數基數為e。返回:val的浮點自然對數。(8)log10原型:float log10(float val);功能:logl0函數計算浮點數val的常用對數。常用對數為基數10。返回:v

3、al的浮點常用對數。(9)sin原型:float sin(float x);功能:sin函數計算浮點數x的正弦值。參數:x必須在-6553565535之間,或產生一個NaN錯誤。返回:sin函數返回x的正弦。(10)cos原型:float cos(float x);功能:COS函數計算浮點數X的余弦。參數:X的值必須在-6553565535之間,或產生一個NaN錯誤。返回:COS函數返回X的余弦。(11)tan原型:float tan(float x);功能:tan函數計算浮點數x的正切值。參數:x必須在-6553565535之間,或錯誤值NaN。返回:tan函數返回x的正切。(12)asin

4、原型:float asin(float x);功能:求反正弦參數:浮點數x,取值必須在-11之間。返回:X的反正弦,值在-/2/2之間。(13)acos原型:float acos(float x);功能:求反余弦參數:浮點數x,取值必須在-11之間。返回:x的反余弦,值在0之間。(14)atan原型:float atan(float x);功能:求反正切參數:浮點數x,取值必須在-11之間。返回:X的反正切,值在-/2/2之間。(15)sinh原型:float sinh(float x);功能:sinh函數計算浮點數X的雙曲正弦。參數:x必須在-6553565535之間,或產生一個NaN錯誤。

5、返回:sinh函數返回x的雙曲正弦。(16)cosh原型:float cosh(float x);功能:cosh函數計算浮點數X的雙曲余弦。參數:返回:cosh函數返回X的雙曲余弦。(17)tanh原型:float tanh(float x);功能:tanh函數計算浮點數x的雙曲正切。返回:tanh函數返回x的雙曲正切。(18)atan2原型:float atan2(float y,float x);功能:計算浮點數y/x的反正切。參數:浮點數y,浮點數x。返回:反正切值,值在-之間。x和y的符號確定返回值的象限。(19)ceil原型:float ceil(float val)功能:ceil函

6、數計算大于或等于val的最小整數值(收尾取整)。參數:要化為整數的數。返回:ceil函數返回不小于val的最小float整數值。(20)floor原型:float floor(float val);功能:取整。返回:floor函數返回不大于val的最大整數值。(21)fmod原型:float fmod(float x,float y);功能:取模。返回:x/y的浮點余數。(22)modf原型:float modf(float val,float *ip);功能:modf函數把浮點數val分成整數和小數部分。返回:modf函數返回帶符號小數部分val。整數部分保存在浮點數ip中。(23)pow原

7、型:float pow(float x,float y);功能:pow函數計算x的y次冪。返回:pow函數返回值xy。如果x0和y=O,pow返回值1;如果x=0和y0,pow返回NaN。如果x<O和y不是一個整數,pow返回NaN。二、空操作,左右位移等內嵌代碼<intrins.h>(1)_nop_原型:void _nop_(void);功能:_nop_插入一個8051NOP空操作指令到程序,用來停頓1個CPU周期。本程序是固有函數,代碼要求內嵌而不是調用。返回:無。(2)_testbit_原型:bit _testbit_(bit b);功能:_testbit_程序在生成的

8、代碼中用JBC指令來測試位b,并清零。參數:本程序只能用在直接尋址位變量,對任何類型的表達式無效。固有函數,代碼要求內嵌,而非調用。返回:_testbit_程序返回值b(3)_cror_原型:unsigned char _cror_(unsigned char c, unsigned char b);功能:_cror_程序字符c循環右移b位。固有函數,代碼要求內嵌,而不是調用。參數:返回:右移的結果(4)_iror_原型:unsigned int _iror_(unsigned int i, unsigned char b);功能:_iror_程序將整數i循環右移b位。固有函數,代碼要求內嵌而

9、不是被調用。參數:i右移的整數,b右移的次數。返回:_iror_程序返回右移后的值。(5)_lror_原型:unsigned long _lror_(unsigned long l,unsigned char b);功能:_lror_程序將長整數l循環右移b位。固有函數代碼,要求內嵌而不是被調用。參數:l要右移的數,b要右移的位數。返回:返回右移后的值。摘要:#include<intrins_h>。(6)_crol_原型:unsigned char _crol_(unsigned char c, unsigned char b);功能:_crol_程序字符c循環左移b位。固有函數,

10、代碼要求內嵌,而不是調用。參數:返回:左移的結果(7)_irol_原型:unsigned int _irol_(unsigned int i, unsigned char b);功能:_irol_程序將整數i循環左移b位。固有函數,代碼要求內嵌而不是被調用。參數:i左移的整數,b左移的次數。返回:_irol_程序返回左移后的值。(8)_lrol_原型:unsigned long _lrol_(unsigned long l,unsigned char b);功能:_lrol_程序將長整數l循環左移b位。固有函數,代碼要求內嵌而不是被調用。參數:l要左移的數,b要左移的位數。返回:返回左移后的值

11、。(9)_chkfloat_原型:unsigned char _chkfloat_(float val);功能:檢查浮點數的狀態。參數:浮點型變量。返回:0,標準浮點數;1,浮點數0;2,正溢出;3,負溢出;4,NaN(不是一個數)錯誤狀態。(10)_push_原型:void _push_(unsigned char _sfr);功能:將特殊功能寄存器_sfr壓入堆棧。(11)_pop_原型:void _pop_(unsigned char _sfr);功能:將堆棧中的數據彈出到特殊功能寄存器_sfr。三、字串轉數字,隨機數,存儲池管理<stdlib.h>(1)atof原型:flo

12、at atof(void *string);功能:將浮點數格式的字符串轉換為浮點數。如果string的第一個字符不能轉換成數字,就停止處理。參數:格式為,+|-數字.數字e|E+|-數字。如,-12.345e+67返回:atof函數返回string的浮點值。(2)atoi原型:int atoi(void *string);功能:atoi函數轉換string為一個整數值。string是一個字符序列,可以解釋為一個整數。如果string的第一個字符不能轉換成數字,就停止處理。參數:atoi函數要求string有這樣的格式:空格+|-數字,如”123456”。返回:atoi函數返回string的整數

13、值。(3)atol原型:long atol(void *string);功能:atol函數轉換string為一個長整數值。string是一個字符序列,可以解釋為一個長整數。如果string的第一個字符不能轉換成數字,就停止處理。參數:atol函數要求string有這樣的格式:空格+|-數字,如”1234567890”。返回:atol函數返回string的長整數值。(4)rand原型:int rand(void);功能:rand函數產生一個032767之間的虛擬隨機數。返回:rand函數返回一個虛擬隨機數。(5)srand原型:void srand(int seed);功能:srand函數設置r

14、and函數所用的虛擬隨機數發生器的起始值seed,隨機數發生器對任何確定值seed產生相同的虛擬隨機數序列。返回:無。(6)strtod原型:unsigned long strtod(const char *string, char *ptr);功能:strtod函數將一個浮點數格式的字符串string轉換為一個浮點數。字符串開頭的空白字符被忽略。參數:要求string有下面的格式: +|-digits.digitse|E+|-digitsdigits可能是一個或多個十進制數。ptr的值設置指針到string中轉換部分的第一個字符。如果ptr是NULL,沒有值和ptr關聯。如果不能轉換,則pr

15、t就設為string的值,strtod返回0。返回:strtod函數返回由string生成的浮點數。(7)strtol原型:long strtol(const char *string, char *ptr, unsigned char base);功能:strtol函數將一個數字字串string轉換為一個long值。參數:輸入string是一個字符序列,可以解釋為一個整數。字符串開頭的空白字符被忽略,符號可選。要求string有下面的格式:whitespace+|-digitsdigits可能是一個或多個十進制數。如果base是零,數值應該有一個十進制常數、八進制常數或十六進制常數的格式。數

16、值的基數從格式推出。如果base在236之間,數值必須是一個字母或數字的非零序列,表示指定基數的一個整數。字母az(或AZ)分別表示值1036。只有小于base的字母表示的值是允許的。如果base是16,數值可能以0x或0X開頭,0x或0x被忽略。prt的值設置指針指向string中轉換部分的第一個字符。如果prt是NULL,沒有值和ptr關聯。如果不能轉換,prt設置為string的值,strtol返回0。返回:strtol函數返回string生成的整數值。如溢出則返回LONG_MIN或LONG_MAX。(8)strtoul原型:unsigned long strtoul(const cha

17、r *string, char *ptr, unsigned char base);功能:strtoul函數轉換string為一個unsigned long值。參數:與strtol函數類似。返回:strtoul函數返回string生成的整數值。如溢出則返回ULONG_MAX。(9)init_mempool原型:void inti_mempool(void xdata *p, unsigned int size);功能:init_mempool 函數初始化存儲管理程序,提供存儲池的開始地址和大小。本函數必須在任何其他的存儲管理函數(calloc,free,malloc,realloc)被調用前設

18、置存儲池,只在程序的開頭調用一次。可以修改源程序以適合硬件環境。參數:p參數指向一個xdata的存儲區,用calloc,free,malloc和realloc庫函數管理。size參數指定存儲池所用的字節數。返回:無。(10)malloc原型:void xdata *malloc(unsigned int size);功能:malloc函數從存儲池分配size字節的存儲塊。返回:malloc返回一個指向所分配的存儲塊的指針,如果沒有足夠的空間,則返回一個NULL指針。(11)free原型:void free(void xdata *p);功能:free函數返回一個存儲塊到存儲池。p參數指向用ca

19、lloc、malloc或realloc函數分配的存儲塊。一旦塊返回到存儲就可被再分配。如果p是一個NULL指針,被忽略。本程序的源代碼在KEILC51LIB目錄中,可以修改源程序,根據硬件來定制本程序。參數:返回:無。(12)realloc原型:void xdata *realloc(void xdata *p,unsigned int size);功能:realloc函數改變已分配的存儲塊的大小。本程序的源代碼在目錄KEILC5ILIB中,可以根據硬件環境定制本函數。參數:P參數指向己分配塊,size參數指定新塊的大小。原塊的內容復制到新塊,新塊中的任何其他區,如果是一個更大的塊不初始化。返

20、回:realloc返回一個指向新塊的指針。如果存儲池沒有足夠的存儲區,返回一個NULL指針,存儲塊不受影響。(13)calloc原型:void xdata *calloc(unsigned int num,unsigned int len);功能:calloc函數從一個數組分配num個元素的存儲區。每個元素占用len字節,并清0。字節總數為num*len。在LIB目錄提供程序的源代碼。可以修改源程序,為硬件定制本函數。參數:num為元素數目,len為每個元素的長度。返回:calloc函數返回一個指針,指向分配的存儲區,如果不能分配,則返回一個NULL指針。四、流輸入輸出<stdio.h&

21、gt;(1)_getkey原型:char _getkey(void);功能:_getkey函數等待從串口接收字符。_getkey和putchar函數的源代碼可以修改,提供針對硬件的字符級的I/O。返回:接收到的字符(2)getchar原型:char getchar(void);功能:getchar函數用_getkey函數從輸入流讀一個字符。所讀的字符用putchar函數顯示。本函數基于_getkey或putchar函數的操作。這些函數,在標準庫中提供,用8051的串口讀和寫字符。定制函數可以用別的I/O設備。返回:所讀的字符。(3)ungetchar原型:char ungetchar(char

22、 c);功能:ungetchar函數把字符c放回到輸入流。子程序被getchar和別的返回c的流輸入函數調用。getchar在調用時只能傳遞一個字符給ungetehar。參數:返回:如果成功,ungetchar函數返回字符c。如果調用者在讀輸入流時調用ungetchar多次,返回EOF表示一個錯誤條件。(4)putchar原型:char putchr(char c);功能:putchar函數用8051的串口輸出字符c。本程序指定執行,功能可能有變。因提供了_getkey和putchar函數的源程序,可以根據任何硬件環境修改以提供字符級的I/O。參數:返回:putchar函數返回輸出的字符c。(

23、5)printf原型:int printf(const char *fmtstr ,arguments);功能:printf函數格式化一系列的字符串和數值,生成一個字符串用putchar寫到輸出流。參數:fmtstr參數是一個格式化字符串,可能是字符、轉義系列和格式標識符。普通的字符和轉義系列按說明的順序復制到流。格式標識符通常以百分號(%)開頭,要求在函數調用中包含附加的參數Arguments。格式字符串從左向右讀。第一個格式標識符使用fmtstr后的第一個參數,用格式標識符轉換和輸出。第二個格式標識符訪問fmtstr后的第二個參數。如果參數比格式標識符多,多出的參數被忽略。如果參數不夠,結

24、果是不可預料的。格式標識符用下面的格式:%flagswidth.precisionb|B|l|Ltype格式標識符中的每個域可以是一個字符或數字type域是一個字符,指定參數是否解釋為一個字符、字符串、數字或指針。如下表所示:可選的字符b或B和l和L可直接放在類型字符前,分別指定整數類型d、i、u、o、x和X的char或long版本。flags 域是單個字符,用來對齊、輸出和打印+/-號、空白、小數點、八進制和十六進制的前綴。如下表所示:width 域是一個非負數字,指定顯示的最小字符數。如果輸出值的字符數小于width,空白會加到左邊或右邊(當指定了一個標記)以達到最小的寬度。如果width

25、用一個0作前綴,則填充的是零而不是空白。width域不會截短一個域。如果輸出值的長度超過指定寬度,則輸出所有的字符。width域可能是星號(*),在這種情況下,參數列表的一個int參數提供寬度值。如果參數使用的是unsigned char,在星號標識符前指定一個b。precision域是非負數字,指定顯示的字符數、小數位數或有效位。precison域可能使輸出值切斷或舍入。precision域可能是星號(*),在這種情況,參數列表的一個int參數提供寬度值。如果參數使用的是unsigned char,在星號標識符前指定一個b。本函數指定執行基于putchar函數的操作。本函數作為標準庫提供,用

26、805l的串口寫字符,用別的I/O設備可以定制函數。必須確保參數類型和指定的格式匹配。可用類型映射確保正確的類型傳遞到printf。可傳遞給 printf 的總的字節數受到 8051 的存儲區的限制。SMALL 模式和COMPACT模式最多15字節,LARGE模式最多40字節。返回:printf函數返回實際寫到輸出流的字符數。(6)sprintf原型:int sprintf(char *buffer,const char *fmtstr ,arguments);功能:sprintf函數格式化一系列的字符串和數值,并保存結果字符串在buffer fintstr。參數:參數是一個格式字符串,和pr

27、intf函數指定的要求相同。返回:sprintf函數返回實際寫到buffer的字符數。(7)vprintf原型:void vprintf(const char *fmtstr, char *argptr);功能:vprintf函數格式化一系列字符串和數字值,并建立一個用puschar函數寫到輸出流的字符串,函數類似于printf的副本,但使用參數列表的指針,而不是一個參數列表。本函數是指定執行的,基于putchar函數的操作。本函數作為標準庫提供,用8051的串口寫字符。別的I/O設備可以定制函數。參數:fmtstr參數是一個指向一個格式字符串的指針,和printf函數的fmtstr參數有相同

28、的形式和功能。argptr參數指向一系列參數,根據格式中指定的對應格式轉換和輸出。返回:vprintf函數返回實際寫到輸出流的字符數。(8)vsprimf原型:void vsprintf(char *buffer, const char *fmtstr, char *argptr);功能:vsprintf函數格式化一系列字符串和數字值,并保存字符串在Buffer中。函數類似于sprintf的副本,但使用參數列表的指針,而不是一個參數列表。參數:fmtstr參數是一個指向一個格式字符串的指針,和printf函數的fmtstr參數有相同的形式和功能。argptr參數指向一系列參數,根據格式中指定的

29、對應格式轉換和輸出。返回:vsprintf函數返回實際寫到輸出流的字符數。 (9)gets原型:char *gets(char *string, int len);功能:gets函數調用getchar函數讀一行字符到string。這行包括所有的字符和換行符('n')。在string中換行符被一個NULL字符('n')替代。len參數指定可讀的最多字符數。如果長度超過len,gets函數用NULL字符終止string并返回。本函數指定執行基于_getkey或putchar函數的操作。這些函數,在標準庫中提供,用8051的串口讀寫。對別的I/O設備可以定制。參數:s

30、tring要讀的字符串,len最多字符數。返回:gets函數返回string(10)scanf原型:int scanf(sonst char *fmtstr ,argument);功能:scanf函數用getchar程序讀數據。輸入的數據保存在由argument根據格式字符串fmtstr指定的位置。參數:每個argument必須是一個指針,指向一個變量,對應fmtstr定義的類型,fmtstr控制解釋輸入的數據,fmtstr參數由一個或單個空白字符、非空白字符和下面定義的格式標識符組成。 · 空白字符,空白(' '),制表('t')或換行('n

31、'),使scanf跳過輸入流中的空白字符。格式字符串中的單個的空白字符匹配輸入流的0或多個空白字符。 · 非空白字符,除了百分號('%'),使scanf從輸入流讀但不保存一個匹配字符。如果輸入流的下一個字符和指定的非空白字符不匹配,scanf函數終止。 · 格式標識符以百分號('%')開頭,使scanf從輸入流讀字符,并轉換字符到指定的類型值。轉換后的值保存在參數列表的argument中。百分號后面的字符不被認為是一個格式標識符,只作為一個普通字符。例如%匹配輸入流的一個百分號。格式字符串從左向右讀,不是格式標識符的字符必須和輸入流的

32、字符匹配。這些字符從輸入流讀入,但不保存,如果輸入流的一個字符和格式字符串沖突,scanf終止。任何沖突的字符仍保留在輸入流中。在格式字符串中的第一個格式標識符引用fmtstr后面的第一個參數,并轉化輸入字符,用格式標識符保存值。第二個格式標識符訪問fmtstr后面的第二個參數,等等。如果參數比格式標識符多,多出的參數被忽略。如果沒有足夠的參數匹配格式標識符,結果是不可預料的。輸入流中的值被輸入域調用,用空白字符隔開。在轉換輸入域時,scanf遇到一個空白字符就結束一個參數的轉換,而且任何當前格式標識符不認識的字符會結束一個域轉換。格式標識符的格式:%*widthb|h|ltype格式標識符中

33、的每個域可以是單個字符或數字,用來指定一個特殊的格式選項。type域是單個字符,指定輸入字符是否解釋為一個字符、字符串或數字。本域可以是下表中的任何值。以星號(*)作為格式標識符的第一個字符,會使輸入域被掃描但不保存。星號禁止和格式標識符關聯。width域是一個非負數,指定從輸入流讀入的最多字符數。從輸入流讀入的字符不超過width,并根據相應的argument轉換。然而,如果一個空白字符或一個不認識字符先遇到,則讀入的字符數小于width。可選字符b,h和l直接放在類型字符前面,分別指定整數類型d,i,u,o和x的char,short或long版本。本函數指定執行基于_getkey或putc

34、har函數的操作。這些函數,作為標準庫提供,用805l的串口讀寫。可對別的I/O設備定制函數。可以傳遞給scanf的字節數受8051存儲區的限制。SMALL模式或COMPACT模式最多為15字節。LARGE模式最多為40字節。返回:scanf函數返回成功轉換的輸入域的數目。如果有錯誤則返回EOF。(11)sscanf原型:int sscanf(char *buffer,const char *fmtstr ,argument);功能:sscanf函數從buffer讀字符串。參數:輸入的數據保存在由argument根據格式字符串fmtstr指定的位置。每個argument必須是指向變量的指針,對

35、應定義在 fmtstr 的類型,控制輸入數據的解釋。fmtstr參數由一個或多個空白字符、非空白字符和格式標識符組成,如同scanf函數所定義。返回:sscanf函數返回成功轉換的輸入域的數目,如果出現錯誤則返回EOF。(12)puts原型:int puts(const char *string);功能:puts函數用putchar函數寫string和換行符n到輸出流。本函數指定執行基于putchar函數的操作。本函數作為標準庫提供,寫字符到8051的串口。用別的I/O口可以定制函數。參數:輸出的字符串。返回:如果出現錯誤,puts函數返回EOF,如果沒有則返回0。五、字符測試<ctyp

36、e.h>(1)isalpha原型:bit isalpha(char c);功能:isalpha函數測試參數c,確定是否是一個字母(AZ,az)。返回:如果c是一個字母,isalpha函數返回1(真),否則返回0(假)。(2)isalnum原型:bit isalnum(char c);功能:isalnum函數測試參數c,確定是否是一個字母或數字字符(AZ,az,09)。返回:如果c是一個字母或數字字符,isalnum函數返回1(真),否則返回0(假)。(3)iscntrl原型:bit iscntrl (char c);功能:iscntrl函數測試參數c,確定是否是一個控制字符(0x000x

37、1F或0x7F)。返回:如果c是一個控制字符,iscntrl函數返回1(真),否則返回0(假)。(4)isdigit原型:bit isdigit(char c);功能:isdigit函數測試參數c,確定是否是一個十進制數(09)。返回:如果c是一個十進制數,isdigit函數返回1(真),否則返回0(假)。(5)isgraph原型:bit isgraph(char c);功能:isgraph函數測試參數c,確定是否是一個可打印字符(0x210x7E,不包括空格)。返回:如果c是一個可打印字符,isgraph函數返回1(真),否則返回0(假)。(6)isprint原型:bit isprint(c

38、har c);功能:isprint函數測試參數c,確定是否是一個可打印字符(0x200x7E)。返回:如果c是一個可打印字符,isprint函數返回1(真),否則返回0(假)。(7)ispunct原型:bit ispunct(char c);功能:ispunct函數測試參數c,確定是否是一個標點符號字符( ! , . : ; ? ” # $ % & ( ) < > * + - = / | _ )。返回:如果c是一個標點符號字符,ispunct函數返回1(真),否則返回0(假)。(8)islower原型:bit islower(char c);功能:islower函數測試參數

39、c,確定是否是一個小寫字母字符(az)。返回:如果c是一個小寫字母字符,islower函數返回1(真),否則返回0(假)。 (9)isupper原型:bit isupper(char c);功能:isupper函數測試參數c,確定是否是一個大寫字母字符(AZ)。返回:如果c是一個大寫字母字符,isupper函數返回1(真),否則返回0(假)。(10)isspace原型:bit isspace(char c);功能:isspace函數測試參數c,確定是否是一個空白字符(0x090x0D或0x20)。返回:如果c是一個空白字符,isspace函數返回1(真),否則返回0(假)。(11)isxdig

40、it原型:bit isalnum(char c);功能:isalnum函數測試參數c,確定是否是一個十六進制數(AF,af,09)。返回:如果c是一個十六進制數,isalnum函數返回1(真),否則返回0(假)。(12)tolower原型:char tolower(char c);功能:tolower函數轉換c為一個小寫字符。如果c不是一個字母,tolower函數無效。(13)toupper原型:char toupper(char c);功能:toupper函數轉換c為一個大寫字符。如果c表示一個字母,toupper函數無效。參數:返回:toupper宏返回c的大寫。(14)toint原型:c

41、har toint(char c);功能:toint函數解釋c為十六進制值。ASCII字符09生成值09。ASCII字符AF和af生成值1015。如果c表示一個十六進制數,函數返回-1。返回:toint宏返回c的十六進制ASCII值。(15)_tolower原型:#define _tolower(c) ( (c)-'A'+'a' )功能:_tolower宏是在已知c是一個大寫字符的情況下可用的lower的一個版本。返回:_tolower宏返回c的小寫。(16)_toupper原型:#define _toupper(c) ( (c)-'a'+

42、9;A' )功能:_toupper宏是在已知c是一個小寫字符的情況下可用的toupper的一個版本。返回:_toupper宏返回c的大寫。(17)toascii原型:#define toascii(c) ( (c) & 0x7F )功能:toascii宏轉換c為一個7位ASCII字符。宏只轉換變量c的低7位。返回:toascii宏返回c的7位ASCII字符。六、跳轉<setjmp.h>(1)setjmp原型:volatile int setjmp(jmp_buf env);功能:setjmp函數保存當前CPU的狀態在env,該狀態可以調用longjmp函數來恢復。參

43、數:當同時使用時,setjmp和longjmp函數提供一種方法實行非局部跳轉。setjmp函數保存當前指令地址和別的CPU寄存器。一個longjmp的并發調用恢復指令指針和寄存器,在setjmp調用后面恢復運行。只有聲明了volatile屬性的局部變量和函數參數被恢復。返回:當CPU的當前狀態被復制到env,setjmp函數返回一個0。一個非零值表示執行了longjmp函數來返回setjmp函數調用。在這種情況下,返回值是傳遞給longjmp函數的值。(2)longjmp原型:volatile void longjmp(jmp_bufenv,int retval);功能:longjmp函數恢復

44、用setjmp函數保存在env的狀態。retval參數指定從setjmp函數調用返回值。longjmp和setjmp函數可以用來執行非局部跳轉,通常用來控制一個錯誤恢復程序。只有用volatile屬性聲明的局部變量和函數參數被恢復。七、字符串操作<string.h>(1)strcat原型:char *strcat(char *s1,char *s2);功能:strcat函數連接或添加s2到s1,并用NULL字符終止s1。參數:s1目標字符串,s2源字符串。返回:s1。(2)strncat原型:char *strncat(char *s1,char *s2,int len);功能:s

45、trncat函數從s2添加最多len個字符到s1,并用NULL結束。如果s2的長度小于len,s2連帶NULL全部復制。參數:s1目標字符串,s2源字符串,len連接的最多字符數。返回:strncat函數返回s1。(3)strcmp原型:char strcmp(char *s1,char *s2);功能:strcmp函數比較字串s1和s2的內容,并返回一個值表示它們的關系。返回:若s1<s2返回負數;若s1=s2返回0;若s1>s2返回正數。(4)strncmp原型:char *strncmp(char *s1,char *s2,int len);功能:strncmp函數比較s1的

46、前len字節和s2,返回一個值表示它們的關系。參數:s1,s2為字串,len為比較的長度。返回:若s1<s2返回負數;若s1=s2返回0;若s1>s2返回正數。(5)strcpy原型:char *strcpy(char *s1, char *s2);功能:strcpy函數復制字符串s2到字符串s1,并用NULL字符結束s1。參數:s1目標字符串,s2源字符串。返回:字符串s1。(6)strncpy原型:char *strncpy(char *dest, char *s2, int len);功能:strncpy函數從字符串s2復制最多len個字符到字符串s1。返回:字符串s1。(7

47、)strlen原型:int strlen(char *s);功能:strlen函數計算字符串s的字節數,不包括NULL結束符。參數:s要測試長度的字串。返回:字符串s的長度。(8)strchr原型:char *strchr(const char *s, char c);功能:strchr函數搜索字符串s中第一個出現的c。s中的NULL字符終止搜索。參數:s被搜索的字符串,c要查找的字符。返回:字符串s中指向c的指針,如沒有發現則返回一個NULL指針。(9)strops原型:int strpos(const char *s, char c);功能:strpos函數查找字符串s中c的第一次出現,包

48、括s的NULL結束符。參數:s被搜索的字符串,c要查找的字符。返回:s中和c匹配的字符的索引。如沒匹配則返回-1。s中第一個字符的索引是0。(10)strrchr原型:char *strrchr(const char *s, char c);功能:strrchr函數查找字符串s中c的最后一次出現,包括s的NULL結束符。參數:s被搜索的字符串,c要查找的字符。返回:strrchr函數返回s中和c匹配的字符的指針,如沒匹配則返回NULL。(11)strrpos原型:int strrpos(const char *s, char c);功能:strrpos函數查找字符串s中c的最后一次出現,包括s

49、的NULL結束符。參數:s被搜索的字符串,c要查找的字符。返回:s中和c匹配的最后字符的索引。如沒匹配則返回-1,s中第一個字符的索引是0。(12)strcspn原型:int strcspn(char *s, char *set);功能:在字符串s中查找字符串set中的任何字符。參數:s源字串,set查找的字串。返回:strcspn函數返回s中和set匹配的第一個字符的索引。如果s的第一個字符和set中的一個字符匹配,返回0。如果s中沒有字符匹配,返回字符串的長度。(13)strpbrk原型:char *strpbrk(char *s, char *set);功能:查找字符串s中第一個出現的set中的任何字符,不包括NULL結束符。參數:s源字串,set查找的字串。返回:s匹配的字符的指針。如果s沒有字符和set匹配,返回一個NULL指針。(14)strrpbrk原型:char *strrpbrk(char *s, char *set);功能:查找字符串s中最后一個出現的set中的任何字符,不包括NULL結束符。返回:s最后匹配的字符的指針。如果s沒有字符和set匹配,返回一個NULL指針。(15)strspn原型:int strspn(char *s, char *set);功能:查找字符串s中set沒有的字符。返回:strspn函數返回s第一個和set不匹配的字符的索引。如

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論