欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

c語(yǔ)言中常用函數(shù)源代碼,常用的c語(yǔ)言函數(shù)

求C語(yǔ)言編程中常用的函數(shù)

字符處理函數(shù)

成都創(chuàng)新互聯(lián)公司是專業(yè)的漾濞網(wǎng)站建設(shè)公司,漾濞接單;提供做網(wǎng)站、網(wǎng)站設(shè)計(jì),網(wǎng)頁(yè)設(shè)計(jì),網(wǎng)站設(shè)計(jì),建網(wǎng)站,PHP網(wǎng)站建設(shè)等專業(yè)做網(wǎng)站服務(wù);采用PHP框架,可快速的進(jìn)行漾濞網(wǎng)站開發(fā)網(wǎng)頁(yè)制作和功能擴(kuò)展;專業(yè)做搜索引擎喜愛(ài)的網(wǎng)站,專業(yè)的做網(wǎng)站團(tuán)隊(duì),希望更多企業(yè)前來(lái)合作!

本類別函數(shù)用于對(duì)單個(gè)字符進(jìn)行處理,包括字符的類別測(cè)試和字符的大小寫轉(zhuǎn)換

頭文件 ctype.h

函數(shù)列表

函數(shù)類別 函數(shù)用途 詳細(xì)說(shuō)明

字符測(cè)試 是否字母和數(shù)字 isalnum

是否字母 isalpha

是否控制字符 iscntrl

是否數(shù)字 isdigit

是否可顯示字符(除空格外) isgraph

是否可顯示字符(包括空格) isprint

是否既不是空格,又不是字母和數(shù)字的可顯示字符 ispunct

是否空格 isspace

是否大寫字母 isupper

是否16進(jìn)制數(shù)字(0-9,A-F)字符 isxdigit

字符大小寫轉(zhuǎn)換函數(shù) 轉(zhuǎn)換為大寫字母 toupper

轉(zhuǎn)換為小寫字母 tolower

地區(qū)化

本類別的函數(shù)用于處理不同國(guó)家的語(yǔ)言差異。

頭文件 local.h

函數(shù)列表

函數(shù)類別 函數(shù)用途 詳細(xì)說(shuō)明

地區(qū)控制 地區(qū)設(shè)置 setlocale

數(shù)字格式約定查詢 國(guó)家的貨幣、日期、時(shí)間等的格式轉(zhuǎn)換 localeconv

數(shù)學(xué)函數(shù)

本分類給出了各種數(shù)學(xué)計(jì)算函數(shù),必須提醒的是ANSI C標(biāo)準(zhǔn)中的數(shù)據(jù)格式并不符合IEEE754標(biāo)準(zhǔn),一些C語(yǔ)言編譯器卻遵循IEEE754(例如frinklin C51)

頭文件 math.h

函數(shù)列表

函數(shù)類別 函數(shù)用途 詳細(xì)說(shuō)明

錯(cuò)誤條件處理 定義域錯(cuò)誤(函數(shù)的輸入?yún)?shù)值不在規(guī)定的范圍內(nèi))

值域錯(cuò)誤(函數(shù)的返回值不在規(guī)定的范圍內(nèi))

三角函數(shù) 反余弦 acos

反正弦 asin

反正切 atan

反正切2 atan2

余弦 cos

正弦 sin

正切 tan

雙曲函數(shù) 雙曲余弦 cosh

雙曲正弦 sinh

雙曲正切 tanh

指數(shù)和對(duì)數(shù) 指數(shù)函數(shù) exp

指數(shù)分解函數(shù) frexp

乘積指數(shù)函數(shù) fdexp

自然對(duì)數(shù) log

以10為底的對(duì)數(shù) log10

浮點(diǎn)數(shù)分解函數(shù) modf

冪函數(shù) 冪函數(shù) pow

平方根函數(shù) sqrt

整數(shù)截?cái)啵^對(duì)值和求余數(shù)函數(shù) 求下限接近整數(shù) ceil

絕對(duì)值 fabs

求上限接近整數(shù) floor

求余數(shù) fmod

本分類函數(shù)用于實(shí)現(xiàn)在不同底函數(shù)之間直接跳轉(zhuǎn)代碼。 頭文件 setjmp.h io.h

函數(shù)列表

函數(shù)類別 函數(shù)用途 詳細(xì)說(shuō)明

保存調(diào)用環(huán)境 setjmp

恢復(fù)調(diào)用環(huán)境 longjmp

信號(hào)處理

該分類函數(shù)用于處理那些在程序執(zhí)行過(guò)程中發(fā)生例外的情況。

頭文件 signal.h

函數(shù)列表

函數(shù)類別 函數(shù)用途 詳細(xì)說(shuō)明

指定信號(hào)處理函數(shù) signal

發(fā)送信號(hào) raise

可變參數(shù)處理

本類函數(shù)用于實(shí)現(xiàn)諸如printf,scanf等參數(shù)數(shù)量可變底函數(shù)。

頭文件 stdarg.h

函數(shù)列表

函數(shù)類別 函數(shù)用途 詳細(xì)說(shuō)明

可變參數(shù)訪問(wèn)宏 可變參數(shù)開始宏 va_start

可變參數(shù)結(jié)束宏 va_end

可變參數(shù)訪問(wèn)宏 訪問(wèn)下一個(gè)可變參數(shù)宏 va_arg

輸入輸出函數(shù)

該分類用于處理包括文件、控制臺(tái)等各種輸入輸出設(shè)備,各種函數(shù)以“流”的方式實(shí)現(xiàn)

頭文件 stdio.h

函數(shù)列表

函數(shù)類別 函數(shù)用途 詳細(xì)說(shuō)明

文件操作

刪除文件 remove

修改文件名稱 rename

生成臨時(shí)文件名稱 tmpfile

得到臨時(shí)文件路徑 tmpnam

文件訪問(wèn) 關(guān)閉文件 fclose

刷新緩沖區(qū) fflush

打開文件 fopen

將已存在的流指針和新文件連接 freopen

設(shè)置磁盤緩沖區(qū) setbuf

設(shè)置磁盤緩沖區(qū) setvbuf

格式化輸入與輸出函數(shù) 格式輸出 fprintf

格式輸入 fscanf

格式輸出(控制臺(tái)) printf

格式輸入(控制臺(tái)) scanf

格式輸出到緩沖區(qū) sprintf

從緩沖區(qū)中按格式輸入 sscanf

格式化輸出 vfprintf

格式化輸出 vprintf

格式化輸出 vsprintf

字符輸入輸出函數(shù) 輸入一個(gè)字符 fgetc

字符串輸入 fgets

字符輸出 fputc

字符串輸出 fputs

字符輸入(控制臺(tái)) getc

字符輸入(控制臺(tái)) getchar

字符串輸入(控制臺(tái)) gets

字符輸出(控制臺(tái)) putc

字符輸出(控制臺(tái)) putchar

字符串輸出(控制臺(tái)) puts

字符輸出到流的頭部 ungetc

直接輸入輸出 直接流讀操作 fread

直接流寫操作 fwrite

文件定位函數(shù) 得到文件位置 fgetpos

文件位置移動(dòng) fseek

文件位置設(shè)置 fsetpos

得到文件位置 ftell

文件位置復(fù)零位 remind

錯(cuò)誤處理函數(shù) 錯(cuò)誤清除 clearerr

文件結(jié)尾判斷 feof

文件錯(cuò)誤檢測(cè) ferror

得到錯(cuò)誤提示字符串 perror

實(shí)用工具函數(shù)

本分類給出了一些函數(shù)無(wú)法按以上分類,但又是編程所必須要的。

頭文件 stdlib.h

函數(shù)列表

函數(shù)類別 函數(shù)用途 詳細(xì)說(shuō)明

字符串轉(zhuǎn)換函數(shù) 字符串轉(zhuǎn)換為整數(shù) atoi

字符串轉(zhuǎn)換為長(zhǎng)整數(shù) atol

字符串轉(zhuǎn)換為浮點(diǎn)數(shù) strtod

字符串轉(zhuǎn)換為長(zhǎng)整數(shù) strtol

字符串轉(zhuǎn)換為無(wú)符號(hào)長(zhǎng)整型 strtoul

偽隨機(jī)序列產(chǎn)生函數(shù) 產(chǎn)生隨機(jī)數(shù) rand

設(shè)置隨機(jī)函數(shù)的起動(dòng)數(shù)值 srand

存儲(chǔ)管理函數(shù) 分配存儲(chǔ)器 calloc

釋放存儲(chǔ)器 free

存儲(chǔ)器分配 malloc

重新分配存儲(chǔ)器 realloc

環(huán)境通信 中止程序 abort

退出程序執(zhí)行,并清除環(huán)境變量 atexit

退出程序執(zhí)行 exit

讀取環(huán)境參數(shù) getenv

程序掛起,臨時(shí)執(zhí)行一個(gè)其他程序 system

搜索和排序工具 二分查找(數(shù)據(jù)必須已排序) bsearch

快速排序 qsort

整數(shù)運(yùn)算函數(shù) 求絕對(duì)值 abs

div

得到除法運(yùn)算底商和余數(shù)

求長(zhǎng)整形底絕對(duì)值 labs

求長(zhǎng)整形除法的商和余數(shù) ldiv

多字節(jié)字符函數(shù) 得到多字節(jié)字符的字節(jié)數(shù) mblen

得到多字節(jié)字符的字節(jié)數(shù) mbtowc

多字節(jié)字符轉(zhuǎn)換 wctomb

多字節(jié)字符的字符串操作 將多字節(jié)串轉(zhuǎn)換為整數(shù)數(shù)組 mbstowcs

將多字節(jié)串轉(zhuǎn)換為字符數(shù)組 mcstowbs

字符串處理

本分類的函數(shù)用于對(duì)字符串進(jìn)行合并、比較等操作

頭文件 string.h

函數(shù)列表

函數(shù)類別 函數(shù)用途 詳細(xì)說(shuō)明

字符串拷貝 塊拷貝(目的和源存儲(chǔ)區(qū)不可重疊) memcpy

塊拷貝(目的和源存儲(chǔ)區(qū)可重疊) memmove

串拷貝 strcpy

按長(zhǎng)度的串拷貝 strncpy

字符串連接函數(shù) 串連接 strcat

按長(zhǎng)度連接字符串 strncat

串比較函數(shù) 塊比較 memcmp

字符串比較 strcmp

字符串比較(用于非英文字符) strcoll

按長(zhǎng)度對(duì)字符串比較 strncmp

字符串轉(zhuǎn)換 strxfrm

字符與字符串查找 字符查找 memchr

字符查找 strchr

字符串查找 strcspn

字符串查找 strpbrk

字符串查找 strspn

字符串查找 strstr

字符串分解 strtok

雜類函數(shù) 字符串設(shè)置 memset

錯(cuò)誤字符串映射 strerror

求字符串長(zhǎng)度 strlen

日期和時(shí)間函數(shù)

本類別給出時(shí)間和日期處理函數(shù)

頭文件 time.h

函數(shù)列表

函數(shù)類別 函數(shù)用途 詳細(xì)說(shuō)明

時(shí)間操作函數(shù) 得到處理器時(shí)間 clock

得到時(shí)間差 difftime

設(shè)置時(shí)間 mktime

得到時(shí)間 time

時(shí)間轉(zhuǎn)換函數(shù) 得到以ASCII碼表示的時(shí)間 asctime

得到字符串表示的時(shí)間 ctime

得到指定格式的時(shí)間 strftime

函數(shù)庫(kù)未來(lái)的發(fā)展方向

本部分用于說(shuō)明各類別函數(shù)庫(kù)在將來(lái)如何發(fā)展。

序號(hào) 庫(kù)類別 頭文件 詳細(xì)說(shuō)明

1 錯(cuò)誤處理 errno.h

2 字符處理 ctype.h

3 地區(qū)化 local.h

4 數(shù)學(xué)函數(shù) math.h

5 信號(hào)處理 signal.h

6 輸入輸出 stdio.h

7 實(shí)用工具程序 stdlib.h

8 字符串處理 string.h

34

求C語(yǔ)言的常用函數(shù),詳細(xì)一點(diǎn)

C語(yǔ)言的常用庫(kù)函數(shù)

函數(shù)1。absread()讀磁盤絕對(duì)扇區(qū)函數(shù)

函數(shù)2。abswrite()寫磁盤絕對(duì)扇區(qū)函數(shù)

函數(shù)3。atof()將字符串轉(zhuǎn)換成浮點(diǎn)數(shù)的函數(shù)

函數(shù)4。atoi()將字符串轉(zhuǎn)換成整型數(shù)的函數(shù)

函數(shù)5。atol()將字符串轉(zhuǎn)換成長(zhǎng)整型數(shù)的函數(shù)

函數(shù)6。bcd()把一個(gè)數(shù)轉(zhuǎn)換成對(duì)應(yīng)的BCD碼的函數(shù)

函數(shù)7。bdos()

函數(shù)8。biosdisk()調(diào)用BIOS磁盤驅(qū)動(dòng)程序函數(shù)

函數(shù)9。biosprint()調(diào)用BIOS打印機(jī)I/O接口的函數(shù)

函數(shù)10。calloc()分配內(nèi)存函數(shù)

函數(shù)11。ceil()

函數(shù)12。cgets()讀字符串函數(shù)

函數(shù)13。chdir()改變當(dāng)前目錄的函數(shù)

函數(shù)14。_chmod()改變文件存取權(quán)限的函數(shù)

函數(shù)15。chmod()改變文件存取權(quán)限的函數(shù)

函數(shù)16。clock()

函數(shù)17。close()關(guān)閉文件函數(shù)

函數(shù)18。closegraph()關(guān)閉圖形函數(shù)

函數(shù)19。cos()

函數(shù)20。ctrlbrk()設(shè)置ctrl-break處理程序的函數(shù)

函數(shù)21。delay()暫停函數(shù)

函數(shù)22。disable()屏蔽中斷的宏

函數(shù)23。enable()開硬件中斷的宏

函數(shù)24。exec()加載并運(yùn)行其它程序的函數(shù)族

函數(shù)25。farcalloc()從遠(yuǎn)堆中分配內(nèi)存的函數(shù)

函數(shù)26。farfree()從遠(yuǎn)堆中釋放一塊已分配內(nèi)存的函數(shù)

函數(shù)27。farmalloc()從遠(yuǎn)堆中分配內(nèi)存的函數(shù)

函數(shù)28。farrealloc()調(diào)整遠(yuǎn)堆中已分配塊的函數(shù)

函數(shù)29。fclose()關(guān)閉一個(gè)流函數(shù)

函數(shù)30。fcloseall()關(guān)閉打開的流的函數(shù)

函數(shù)31。feof()檢查文件是否結(jié)束的函數(shù)

函數(shù)32。fgets()從流中讀取一字符串的函數(shù)

函數(shù)33。findfirst()函數(shù)和findnext()函數(shù)

函數(shù)34。floodfill()填充區(qū)域的函數(shù)

函數(shù)35。floor()

函數(shù)36。fnmerge()建立文件路徑函數(shù)

函數(shù)37。fnsplit()分解完整的路徑名函數(shù)

函數(shù)38。fopen()打開一個(gè)流函數(shù)

函數(shù)39。FP_OFF()獲取遠(yuǎn)地址偏移量的宏

函數(shù)40。fprintf()傳送輸出到一個(gè)流中的函數(shù)

函數(shù)41。FP_SEG()獲取遠(yuǎn)地址段值的宏

函數(shù)42。fscanf()格式化輸入函數(shù)

函數(shù)43。fseek()移動(dòng)文件指針函數(shù)

函數(shù)44。fwrite()把參數(shù)寫入流中的函數(shù)

函數(shù)45。gcvt()把雙精度數(shù)轉(zhuǎn)化成字符串的函數(shù)

函數(shù)46。geninterrupt()執(zhí)行中斷函數(shù)

函數(shù)47。getc()從流中取字符的宏

函數(shù)48。getch()從鍵盤無(wú)回顯地讀取一字符的函數(shù)

函數(shù)49。getchar()從stdin流中讀取一個(gè)字符的函數(shù)

函數(shù)50。getcurdir()讀取指定驅(qū)動(dòng)器的當(dāng)前目錄的函數(shù)

函數(shù)61。getcwd()讀取當(dāng)前目錄的函數(shù)

函數(shù)62。getdate()讀取系統(tǒng)日期函數(shù)

函數(shù)63。getdfree()讀取磁盤空閑空間的函數(shù)

函數(shù)64。getdisk()讀取當(dāng)前磁盤驅(qū)動(dòng)器號(hào)函數(shù)

函數(shù)65。getenv()讀取環(huán)境變量的當(dāng)前值的函數(shù)

函數(shù)66。getimage()將指定區(qū)域的位圖象存入內(nèi)存的函數(shù)

函數(shù)67。getmaxx()返回屏幕上最大的X坐標(biāo)值的函數(shù)

函數(shù)68。getmaxy()返回屏幕上最大的Y坐標(biāo)值的函數(shù)

函數(shù)69。getpixel()讀取像素顏色的函數(shù)

函數(shù)70。getpsp()

函數(shù)71。gets()從標(biāo)準(zhǔn)輸入流stdio中讀取一字符串的函數(shù)

函數(shù)72。gettime()讀取系統(tǒng)時(shí)間的函數(shù)

函數(shù)73。getvect()讀取中斷向量函數(shù)

函數(shù)74。getx()返回當(dāng)前圖形方式下位置的X坐標(biāo)值的函數(shù)

函數(shù)75。gety()返回當(dāng)前圖形方式下位置的Y坐標(biāo)值的函數(shù)

函數(shù)76。imagesize()返回保存圖像緩沖區(qū)大小的函數(shù)

函數(shù)77。initgraph()顯示模式控制函數(shù)(初始化圖形系統(tǒng)函數(shù))

函數(shù)78。inport()從端口中讀入一個(gè)字的函數(shù)

函數(shù)79。inportb()從端口讀入一個(gè)字節(jié)的函數(shù)

函數(shù)80。int86()執(zhí)行中斷函數(shù)(調(diào)用8086軟中斷函數(shù))

函數(shù)81。int86x()執(zhí)行中斷函數(shù) (通用8086軟中斷接口函數(shù))

函數(shù)82。intdos()通用dos中斷接口函數(shù)

函數(shù)83。intdosx()通用dos中斷接口函數(shù)

函數(shù)84。intr()執(zhí)行8086軟中斷函數(shù)(改變軟中斷接口函數(shù))

函數(shù)85。itoa()把整形數(shù)轉(zhuǎn)換為字符串的函數(shù)

函數(shù)86。kbhit()檢查當(dāng)前按下的鍵的函數(shù)

函數(shù)87。keep()駐留并退出函數(shù)

函數(shù)88。log()

函數(shù)89。log10()

函數(shù)90。_lrotl()將一個(gè)無(wú)符號(hào)長(zhǎng)整形數(shù)左循環(huán)移位的函數(shù)

函數(shù)91。_lrotr()將一個(gè)無(wú)符號(hào)長(zhǎng)整形數(shù)右循環(huán)移位的函數(shù)

函數(shù)92。lseek()移動(dòng)文件指針函數(shù)

函數(shù)93。ltoa()把長(zhǎng)整形數(shù)轉(zhuǎn)換為字符串的函數(shù)

函數(shù)94。malloc()分配內(nèi)存函數(shù)

函數(shù)95。mkdir()創(chuàng)建目錄函數(shù)

函數(shù)96。mktemp()建立一個(gè)唯一的文件名的函數(shù)

函數(shù)97。MK_FP()設(shè)置一個(gè)遠(yuǎn)指針的宏

函數(shù)98。movedata()拷貝數(shù)據(jù)函數(shù)

函數(shù)99。_open()打開一個(gè)文件進(jìn)行讀寫的函數(shù)

函數(shù)100。open()打開文件進(jìn)行讀寫的函數(shù)

函數(shù)101。outport()輸出一個(gè)字到端口中的函數(shù)

函數(shù)102。outportb()輸出一個(gè)字節(jié)到端口中的函數(shù)

函數(shù)103。outtextxy()在指定位置顯示一字符串的函數(shù)

函數(shù)104。peek()返回指定內(nèi)存中字的函數(shù)

函數(shù)105。peekb()返回指定內(nèi)存中字節(jié)的函數(shù)

函數(shù)106。poke()在指定的內(nèi)存中存儲(chǔ)一個(gè)字的函數(shù)

函數(shù)107。pokeb()在指定的內(nèi)存中存儲(chǔ)一個(gè)字節(jié)的函數(shù)

函數(shù)108。pow()

函數(shù)109。printf()寫格式化輸出到stdout的函數(shù)

函數(shù)110。putch()向屏幕輸出字符的函數(shù)

函數(shù)111。putchar()在stdout上輸出字符的宏

函數(shù)112。putenv()將字符串放入當(dāng)前環(huán)境中的函數(shù)

函數(shù)113。putimage()重新寫屏函數(shù)(輸出一個(gè)位圖象到圖形屏幕上的函數(shù))

函數(shù)114。putpixel()寫像素點(diǎn)函數(shù)

函數(shù)115。puts()輸出一字符串到stdout(標(biāo)準(zhǔn)輸出)的函數(shù)

函數(shù)116。_read()讀文件函數(shù)

函數(shù)117。read()讀文件函數(shù)

函數(shù)118。realloc()重新分配內(nèi)存函數(shù)

函數(shù)119。rectangle()畫一個(gè)矩形的函數(shù)

函數(shù)120。remove()刪除一個(gè)文件的函數(shù)

函數(shù)121。rename()文件改名函數(shù)

函數(shù)122。restorecrtmode()恢復(fù)屏幕視頻模式為調(diào)用initgraph前的設(shè)置的函數(shù)

函數(shù)123。rmdir()刪除目錄函數(shù)

函數(shù)124。_rotl()將一個(gè)無(wú)符號(hào)整形數(shù)左循環(huán)移位的函數(shù)

函數(shù)125。_rotr()將一個(gè)無(wú)符號(hào)整形數(shù)右循環(huán)移位的函數(shù)

函數(shù)126。scanf()格式化輸入函數(shù)

函數(shù)127。searchpath()按dos路徑查找一個(gè)文件的函數(shù)

函數(shù)128。segread()讀段寄存器函數(shù)

函數(shù)129。setactivepage()設(shè)置圖形輸出活動(dòng)頁(yè)的函數(shù)

函數(shù)130。setcolor()設(shè)置當(dāng)前要畫的線顏色的函數(shù)

函數(shù)131。setdisk()設(shè)置當(dāng)前驅(qū)動(dòng)器的函數(shù)

函數(shù)132。setgraphmode()將系統(tǒng)設(shè)置成圖形模式并清屏的函數(shù)

函數(shù)133。setlinestyle()設(shè)置當(dāng)前畫線寬度和類型的函數(shù)

函數(shù)134。settextstyle()顯示字符的當(dāng)前設(shè)置函數(shù)

函數(shù)135。setvect()設(shè)置中斷向量函數(shù)

函數(shù)136。setviewport()建立視口的函數(shù)

函數(shù)137。setvisualpage()設(shè)置可見(jiàn)的圖形頁(yè)號(hào)的函數(shù)

函數(shù)138。sin()

函數(shù)139。sprintf()格式化輸出到數(shù)組的函數(shù)

函數(shù)140。strcat()

函數(shù)141。tan()

函數(shù)142。_write()寫文件函數(shù)

函數(shù)143。write()寫文件函數(shù)

原文釋義請(qǐng)到百度文庫(kù)里搜尋字串“C語(yǔ)言常用函數(shù)”后下載

函數(shù)51-60因原注里排序號(hào)碼少編,所以只有133個(gè)常用函數(shù)。

DOC大小是119.5KB

貢獻(xiàn)時(shí)間:2010-09-10

貢獻(xiàn)者:handanlinzhang

求C語(yǔ)言中的庫(kù)函數(shù)的源代碼 如printf()函數(shù),我要它的源代碼

如果你安裝的Visual Studio,以及它的Visual C++的話,

那么在安裝目錄下的VC/crt/src下有所有標(biāo)準(zhǔn)C庫(kù)的源代碼

另外,h后綴的頭文件包含函數(shù)的聲明,具體的實(shí)現(xiàn)都在c后綴的源碼文件中

C語(yǔ)言strcmp函數(shù)是什么樣的代碼

C語(yǔ)言中strcmp函數(shù)是string庫(kù)的常用函數(shù)。其原型代碼和介紹如下:

1.先說(shuō)一下這個(gè)函數(shù)的實(shí)現(xiàn)原理,向strcmp()函數(shù)中傳入兩個(gè)字符串(記為str1,str2).傳入之后,通過(guò)把str1的各字母的ASCII碼值和str2的各字母的ASCII碼值進(jìn)行比較。若str1str2則返回正數(shù),若str1=str2則返回0,否則,則返回負(fù)數(shù)。

2.下面實(shí)現(xiàn)代碼:

3.整個(gè)函數(shù)的原型中得益于“(*str1!='\0')(*str1==*str2)”這一句的代碼,因?yàn)檫@樣當(dāng)字符指針指向空,意味著字符串已經(jīng)移動(dòng)到最后了,比較結(jié)束,此時(shí)可以退出循環(huán)。而如果兩個(gè)字符串不相等時(shí),則此時(shí)函數(shù)也可以退出了。

擴(kuò)展資料:

這個(gè)函數(shù)要注意一下幾點(diǎn):

①使用*(unsigned char*)str1而不是用*str1。這是因?yàn)閭魅氲膮?shù)為有符號(hào)數(shù),有符號(hào)字符值的范圍是-128~127,無(wú)符號(hào)字符值的范圍是0~255,而字符串的ASCII沒(méi)有負(fù)值,若不轉(zhuǎn)化為無(wú)符號(hào)數(shù)這回在減法實(shí)現(xiàn)時(shí)出現(xiàn)錯(cuò)誤。

②While循環(huán)中ret=*(unsigned char*)str1-*(unsigned char*)str2) *str1,最后與上str1也可以換成str2,因?yàn)榍懊嬉呀?jīng)做了相減,無(wú)論哪個(gè)先為‘\0’都會(huì)退出。因?yàn)樽詈笈c上str1是為了判斷str1是否結(jié)束,即是否為‘\0’。

③這個(gè)函數(shù)沒(méi)有判斷參數(shù)為NULL時(shí)的情況,所以當(dāng)傳入NULL時(shí)程序會(huì)崩潰。網(wǎng)上看別人說(shuō)商業(yè)化代碼都會(huì)在調(diào)用strcmp前先判斷是否為NULL,所以可以不用判斷NULL;我在VC6上測(cè)試string.h中的strcmp(NULL,NULL),程序也會(huì)崩潰。這里可以根據(jù)實(shí)際情況來(lái)決定。

參考資料來(lái)源:百度百科-strcmp函數(shù)

C語(yǔ)言中所有的代碼及其代表的意思,有誰(shuí)知道?

這個(gè)問(wèn)題問(wèn)的太。。。。了,給你找了個(gè)操作符(operator)用于操作數(shù)據(jù)。操作符進(jìn)行計(jì)算、檢查等式、進(jìn)行賦值、操作變量和進(jìn)行其它更奇怪的工作。C++中有許多操作符,這里不想列出全部,只列出最常用的操作符,如下表所示。表1.2常用C++操作符操作符說(shuō)明舉例

算術(shù)運(yùn)算符

+ 加 x=y+z;

- 減 x=y-z;

* 乘 x=y*z;

/ 除 x=y/z;

賦值運(yùn)算符

= 賦值 x=10;

+= 賦值與和 x+=10;(等于x=x+10;)

-= 賦值與減 x-=10;

*= 賦值與乘 x*=10;

\= 賦值與除 x\=10;

= 賦值位與 x=0x02;

|= 賦值位或 x|=0x02;

邏輯操作符

邏輯與 if(x 0xFF) {...}

|| 邏輯或 if(x || 0xFF) {...}

等式操作符

== 等于 if(x == 10) {...}

!= 不等于 if(x != 10) {...}

小于 if(x 10) {...}

大于 if(x 10) {...}

= 小于或等于 if(x = 10) {...}

= 大于或等于 if(x = 10) {...}

一元操作符

* 間接操作符 int x=*y;

地址操作符 int* x=y;

~ 位非 x =~0x02;

! 邏輯非 if(!valid) {...}

++ 遞增操作符 x++(等于x=x+1;)

-- 遞減操作符 x--;

類和結(jié)構(gòu)操作符

:: 范圍解析 MyClass :: SomeFunction();

- 間接成員 MyClass- SomeFunction();

· 直接成員 MyClass . SomeFunction();

可以看出,這個(gè)清單長(zhǎng)了些,沒(méi)法一下子記住。使用C++時(shí),你會(huì)慢慢熟悉這些操作符的。必須指出,遞增操作符既可用作前遞增(++x),也可用作后遞增(x++)。前遞增操作符告訴編譯器先遞增再使用變量,而后遞增操作符則讓編譯器先使用變量值再遞增。例如下列代碼:

int x = 10;

cout "x = " x++ end1;

cout "x = " x end1;

cout "x = " x end1;

cout "x = " ++x end1;

輸出結(jié)果如下:

x=10

x=11

x=12

x=12

遞減操作符也是這樣,這里不想將這些內(nèi)容講得太深,但讀者可以耐心閱讀下去,正如彭茲對(duì)奧古斯特所說(shuō),“奧古,耐心點(diǎn),羅馬不是一天建成的”。說(shuō)明 在C++中操作符可以過(guò)載(overload)。編程人員可以通過(guò)過(guò)載標(biāo)準(zhǔn)操作符讓它在特定類中進(jìn)行特定運(yùn)行。例如,可以在一個(gè)類中過(guò)載遞增操作符,讓它將變量遞增10而不是遞增1。操作符過(guò)載是個(gè)高級(jí)C++技術(shù),本書不準(zhǔn)備詳細(xì)介紹。你也許會(huì)發(fā)現(xiàn),有些操作符使用了相同的符號(hào)。符號(hào)的意義隨情境的不同而不同。例如,星號(hào)(*)可以作為乘號(hào)、聲明指針或取消指針引用。這初看起來(lái)有點(diǎn)亂,事實(shí)上,C++編程老手有時(shí)也覺(jué)得有點(diǎn)亂。多實(shí)踐,你會(huì)慢慢適應(yīng)的。本書有許多例子介紹這些操作符。讀者不必死記每個(gè)操作符的作用,而可以在學(xué)習(xí)中通過(guò)程序和碼段去理解其作用。 C++中的函數(shù)

函數(shù)是與主程序分開的碼段。這些碼段在程序中需要進(jìn)行特定動(dòng)作時(shí)調(diào)用(執(zhí)行)。例如,函數(shù)可能取兩個(gè)值并對(duì)其進(jìn)行復(fù)雜的數(shù)學(xué)運(yùn)算。然后返回結(jié)果,函數(shù)可能取一個(gè)字串進(jìn)行分析,然后返回分析字串的一部分。新術(shù)語(yǔ) 函數(shù)(function)是與主程序分開的碼段,進(jìn)行預(yù)定的一個(gè)服務(wù)。函數(shù)是各種編程語(yǔ)言的重要部分,C++也不例外。最簡(jiǎn)單的函數(shù)不帶參數(shù),返回void(表示不返回任何東西),其它函數(shù)可能帶一個(gè)或幾個(gè)參數(shù)并可能返回一個(gè)值。函數(shù)名規(guī)則與變量名相同。圖1.5顯示了函數(shù)的構(gòu)成部分。新術(shù)語(yǔ) 參數(shù)(parameter)是傳遞給函數(shù)的值,用于改變操作或指示操作程度。

返回類型 函數(shù)名 參數(shù)表

↓ ↓ ↓

int SomeFunction(int x, int y){

函數(shù)體→int z = (x * y); return z; ↑返回語(yǔ)句

}

圖1.5函數(shù)的構(gòu)成部分使用函數(shù)前,要先進(jìn)行聲明。函數(shù)聲明或原型(prototype)告訴編譯器函數(shù)所取的參數(shù)個(gè)數(shù)、每個(gè)參數(shù)的數(shù)據(jù)類型和函數(shù)返回值的數(shù)據(jù)類型。清單1.4列示了這個(gè)概念。新術(shù)語(yǔ) 原型(prototype)是函數(shù)外觀的聲明或其定義的說(shuō)明。

清單1.4Muttiply.cpp

1: #include iostream.h

2: #include conio.h

3: #pragma hdrstop

4:

5: int multiply(int,int)

6: void showResult(int);

7:

8:int main(int argc,char **argv);

9:{

10: int x,y,result;

11: cout end1 "Enter the first value:";

12: cin x;

13: cout "Enter the second value: ";

14: cin y;

15: result=multiply(x,y);

16: showResult(result);

17: cout end1 end1 "Press any key to continue...";

18: getch();

19: return 0

20: }

21:

22: int multiply(int x,int y)

23: {

24:return x * y;

25: }

26:

27: void showResult(int res)

28: {

29:cout "The result is: " res end1;

30: }

這個(gè)程序的11到14行用標(biāo)準(zhǔn)輸入流cin向用戶取兩個(gè)數(shù)字,第15行調(diào)用multiply()函數(shù)將兩個(gè)數(shù)相乘,第16行調(diào)用showResult()函數(shù)顯示相乘的結(jié)果。注意主程序前面第5和第6行multiply()和showResult()函數(shù)的原型聲明。原型中只列出了返回類型、函數(shù)名和函數(shù)參數(shù)的數(shù)據(jù)類型。這是函數(shù)聲明的最基本要求。函數(shù)原型中還可以包含用于建檔函數(shù)功能的變量名。例如,multiply()函數(shù)的函數(shù)聲明可以寫成如下:int multiply(int firstNumber,int secondNumber);這里函數(shù)multiply()的作用很明顯,但代碼既可通過(guò)說(shuō)明也可通過(guò)代碼本身建檔。注意清單1.4中函數(shù)multiply()的定義(22到25行)在主函數(shù)定義碼段(8到20行)之外。函數(shù)定義中包含實(shí)際的函數(shù)體。這里的函數(shù)體是最基本的,因?yàn)楹瘮?shù)只是將函數(shù)的兩個(gè)參數(shù)相乘并返回結(jié)果。清單1.4中函數(shù)multiply()可以用多種方法調(diào)用,可以傳遞變量、直接數(shù)或其它函數(shù)調(diào)用的結(jié)果:

result = multiply(2,5);//passing literal values

result = multiply(x,y); //passing variables

showResult(multiply(x,y));

//return value used as a

//parameter for another function

multiply(x,y);//return value ignored

注意 最后一例中沒(méi)有使用返回值。本例中調(diào)用函數(shù)multiply()而不用返回值沒(méi)什么道理,但C++編程中經(jīng)常忽略返回值。有許多函數(shù)是先進(jìn)行特定動(dòng)作再返回一個(gè)數(shù)值,表示函數(shù)調(diào)用的狀態(tài)。有時(shí)返回值與程序無(wú)關(guān),可以忽略不計(jì)。如果將返回值忽略,則只是放棄這個(gè)值,而不會(huì)有別的危害。例如,前面的樣本程序中忽略了getch()函數(shù)的返回值(返回所按鍵的ASCII值)。函數(shù)可以調(diào)用其它函數(shù),甚至可以調(diào)用自己,這種調(diào)用稱為遞歸(recursion)。這在C++編程中是個(gè)較復(fù)雜的問(wèn)題,這里先不介紹。新術(shù)語(yǔ) 遞歸(recursion)就是函數(shù)調(diào)用自己的過(guò)程。

在C語(yǔ)言里,關(guān)于庫(kù)函數(shù)中各種數(shù)學(xué)函數(shù)的代碼。

你說(shuō)的就是庫(kù)函數(shù)的源碼,也就是glibc,源碼在可以下到,比如下載,打開后就可以看到你需要的各種庫(kù)的具體實(shí)現(xiàn)代碼,比如在string中的strcat.c中就有

char?*strcat?(dest,?src)

char?*dest;

const?char?*src;

{

char?*s1?=?dest;

const?char?*s2?=?src;

reg_char?c;

/*?Find?the?end?of?the?string.??*/

do

c?=?*s1++;

while?(c?!=?'\0');

/*?Make?S1?point?before?the?next?character,?so?we?can?increment

it?while?memory?is?read?(wins?on?pipelined?cpus).??*/

s1?-=?2;

do

{

c?=?*s2++;

*++s1?=?c;

}

while?(c?!=?'\0');

return?dest;

}

文章題目:c語(yǔ)言中常用函數(shù)源代碼,常用的c語(yǔ)言函數(shù)
URL網(wǎng)址:http://chinadenli.net/article24/dsgijje.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供商城網(wǎng)站做網(wǎng)站App開發(fā)App設(shè)計(jì)云服務(wù)器移動(dòng)網(wǎng)站建設(shè)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

成都網(wǎng)站建設(shè)