字符處理函數(shù)
桂林網(wǎng)站建設(shè)公司創(chuàng)新互聯(lián)公司,桂林網(wǎng)站設(shè)計(jì)制作,有大型網(wǎng)站制作公司豐富經(jīng)驗(yàn)。已為桂林近1000家提供企業(yè)網(wǎng)站建設(shè)服務(wù)。企業(yè)網(wǎng)站搭建\成都外貿(mào)網(wǎng)站制作要多少錢,請(qǐng)找那個(gè)售后服務(wù)好的桂林做網(wǎng)站的公司定做!
本類別函數(shù)用于對(duì)單個(gè)字符進(jìn)行處理,包括字符的類別測試和字符的大小寫轉(zhuǎn)換
頭文件 ctype.h
函數(shù)列表
函數(shù)類別 函數(shù)用途 詳細(xì)說明
字符測試 是否字母和數(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ù)用于處理不同國家的語言差異。
頭文件 local.h
函數(shù)列表
函數(shù)類別 函數(shù)用途 詳細(xì)說明
地區(qū)控制 地區(qū)設(shè)置 setlocale
數(shù)字格式約定查詢 國家的貨幣、日期、時(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語言編譯器卻遵循IEEE754(例如frinklin C51)
頭文件 math.h
函數(shù)列表
函數(shù)類別 函數(shù)用途 詳細(xì)說明
錯(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ì)說明
保存調(diào)用環(huán)境 setjmp
恢復(fù)調(diào)用環(huán)境 longjmp
信號(hào)處理
該分類函數(shù)用于處理那些在程序執(zhí)行過程中發(fā)生例外的情況。
頭文件 signal.h
函數(shù)列表
函數(shù)類別 函數(shù)用途 詳細(xì)說明
指定信號(hào)處理函數(shù) signal
發(fā)送信號(hào) raise
可變參數(shù)處理
本類函數(shù)用于實(shí)現(xiàn)諸如printf,scanf等參數(shù)數(shù)量可變底函數(shù)。
頭文件 stdarg.h
函數(shù)列表
函數(shù)類別 函數(shù)用途 詳細(xì)說明
可變參數(shù)訪問宏 可變參數(shù)開始宏 va_start
可變參數(shù)結(jié)束宏 va_end
可變參數(shù)訪問宏 訪問下一個(gè)可變參數(shù)宏 va_arg
輸入輸出函數(shù)
該分類用于處理包括文件、控制臺(tái)等各種輸入輸出設(shè)備,各種函數(shù)以“流”的方式實(shí)現(xiàn)
頭文件 stdio.h
函數(shù)列表
函數(shù)類別 函數(shù)用途 詳細(xì)說明
文件操作
刪除文件 remove
修改文件名稱 rename
生成臨時(shí)文件名稱 tmpfile
得到臨時(shí)文件路徑 tmpnam
文件訪問 關(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ò)誤檢測 ferror
得到錯(cuò)誤提示字符串 perror
實(shí)用工具函數(shù)
本分類給出了一些函數(shù)無法按以上分類,但又是編程所必須要的。
頭文件 stdlib.h
函數(shù)列表
函數(shù)類別 函數(shù)用途 詳細(xì)說明
字符串轉(zhuǎn)換函數(shù) 字符串轉(zhuǎn)換為整數(shù) atoi
字符串轉(zhuǎn)換為長整數(shù) atol
字符串轉(zhuǎn)換為浮點(diǎn)數(shù) strtod
字符串轉(zhuǎn)換為長整數(shù) strtol
字符串轉(zhuǎn)換為無符號(hào)長整型 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ù)
求長整形底絕對(duì)值 labs
求長整形除法的商和余數(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ì)說明
字符串拷貝 塊拷貝(目的和源存儲(chǔ)區(qū)不可重疊) memcpy
塊拷貝(目的和源存儲(chǔ)區(qū)可重疊) memmove
串拷貝 strcpy
按長度的串拷貝 strncpy
字符串連接函數(shù) 串連接 strcat
按長度連接字符串 strncat
串比較函數(shù) 塊比較 memcmp
字符串比較 strcmp
字符串比較(用于非英文字符) strcoll
按長度對(duì)字符串比較 strncmp
字符串轉(zhuǎn)換 strxfrm
字符與字符串查找 字符查找 memchr
字符查找 strchr
字符串查找 strcspn
字符串查找 strpbrk
字符串查找 strspn
字符串查找 strstr
字符串分解 strtok
雜類函數(shù) 字符串設(shè)置 memset
錯(cuò)誤字符串映射 strerror
求字符串長度 strlen
日期和時(shí)間函數(shù)
本類別給出時(shí)間和日期處理函數(shù)
頭文件 time.h
函數(shù)列表
函數(shù)類別 函數(shù)用途 詳細(xì)說明
時(shí)間操作函數(shù) 得到處理器時(shí)間 clock
得到時(shí)間差 difftime
設(shè)置時(shí)間 mktime
得到時(shí)間 time
時(shí)間轉(zhuǎn)換函數(shù) 得到以ASCII碼表示的時(shí)間 asctime
得到字符串表示的時(shí)間 ctime
得到指定格式的時(shí)間 strftime
函數(shù)庫未來的發(fā)展方向
本部分用于說明各類別函數(shù)庫在將來如何發(fā)展。
序號(hào) 庫類別 頭文件 詳細(xì)說明
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語言庫函數(shù),常用庫函數(shù)有:
1、scanf格式輸入函數(shù)
2、printf格式輸出函數(shù)
3、systemdos命令函數(shù)
4、sort排序
5、main主函數(shù)
6、fgets文件讀取字符串函數(shù)
7、fputs文件寫入字符串函數(shù)
8、fscanf文件格式讀取函數(shù)
9、fprintf文件格式寫入函數(shù)
10、fopen打開文件函數(shù)
11、getchar輸入字符函數(shù)
12、putchar輸出字符函數(shù)
13、malloc動(dòng)態(tài)申請(qǐng)內(nèi)存函數(shù)
14、free釋放內(nèi)存函數(shù)
15、abs求絕對(duì)值數(shù)學(xué)函數(shù)
16、sqrt求平方根數(shù)學(xué)函數(shù)
擴(kuò)展資料
語言組成:
1、數(shù)據(jù)類型
C的數(shù)據(jù)類型包括:整型、字符型、實(shí)型或浮點(diǎn)型(單精度和雙精度)、枚舉類型、數(shù)組類型、結(jié)構(gòu)體類型、共用體類型、指針類型和空類型。
2、常量與變量
常量其值不可改變,符號(hào)常量名通常用大寫。
變量是以某標(biāo)識(shí)符為名字,其值可以改變的量。標(biāo)識(shí)符是以字母或下劃線開頭的一串由字母、數(shù)字或下劃線構(gòu)成的序列,請(qǐng)注意第一個(gè)字符必須為字母或下劃線,否則為不合法的變量名。變量在編譯時(shí)為其分配相應(yīng)存儲(chǔ)單元。
3、數(shù)組
如果一個(gè)變量名后面跟著一個(gè)有數(shù)字的中括號(hào),這個(gè)聲明就是數(shù)組聲明。字符串也是一種數(shù)組。它們以ASCII的NULL作為數(shù)組的結(jié)束。要特別注意的是,方括內(nèi)的索引值是從0算起的。
4、指針
如果一個(gè)變量聲明時(shí)在前面使用 * 號(hào),表明這是個(gè)指針型變量。換句話說,該變量存儲(chǔ)一個(gè)地址,而 *(此處特指單目運(yùn)算符 * ,下同。C語言中另有 雙目運(yùn)算符 *) 則是取內(nèi)容操作符,意思是取這個(gè)內(nèi)存地址里存儲(chǔ)的內(nèi)容。指針是 C 語言區(qū)別于其他同時(shí)代高級(jí)語言的主要特征之一。
參考資料來源:百度百科-函數(shù)
函數(shù)名: abort
功 能: 異常終止一個(gè)進(jìn)程
用 法: void abort(void);
程序例:
#include stdio.h
#include stdlib.h
int main(void)
{
printf("Calling abort()\n");
abort();
return 0; /* This is never reached */
}
函數(shù)名: abs
功 能: 求整數(shù)的絕對(duì)值
用 法: int abs(int i);
程序例:
#include stdio.h
#include math.h
int main(void)
{
int number = -1234;
printf("number: %d absolute value: %d\n", number, abs(number));
return 0;
}
函數(shù)名: absread, abswirte
功 能: 絕對(duì)磁盤扇區(qū)讀、寫數(shù)據(jù)
用 法: int absread(int drive, int nsects, int sectno, void *buffer);
int abswrite(int drive, int nsects, in tsectno, void *buffer);
程序例:
/* absread example */
#include stdio.h
#include conio.h
#include process.h
#include dos.h
int main(void)
{
int i, strt, ch_out, sector;
char buf[512];
printf("Insert a diskette into drive A and press any key\n");
getch();
sector = 0;
if (absread(0, 1, sector, buf) != 0)
{
perror("Disk problem");
exit(1);
}
printf("Read OK\n");
strt = 3;
for (i=0; i80; i++)
{
ch_out = buf[strt+i];
putchar(ch_out);
}
printf("\n");
return(0);
}
函數(shù)名: access
功 能: 確定文件的訪問權(quán)限
用 法: int access(const char *filename, int amode);
程序例:
#include stdio.h
#include io.h
int file_exists(char *filename);
int main(void)
{
printf("Does NOTEXIST.FIL exist: %s\n",
file_exists("NOTEXISTS.FIL") ? "YES" : "NO");
return 0;
}
int file_exists(char *filename)
{
return (access(filename, 0) == 0);
}
函數(shù)名: acos
功 能: 反余弦函數(shù)
用 法: double acos(double x);
程序例:
#include stdio.h
#include math.h
int main(void)
{
double result;
double x = 0.5;
result = acos(x);
printf("The arc cosine of %lf is %lf\n", x, result);
return 0;
}
函數(shù)名: allocmem
功 能: 分配DOS存儲(chǔ)段
用 法: int allocmem(unsigned size, unsigned *seg);
程序例:
#include dos.h
#include alloc.h
#include stdio.h
int main(void)
{
unsigned int size, segp;
int stat;
size = 64; /* (64 x 16) = 1024 bytes */
stat = allocmem(size, segp);
if (stat == -1)
printf("Allocated memory at segment: %x\n", segp);
else
printf("Failed: maximum number of paragraphs available is %u\n",
stat);
return 0;
}
函數(shù)名: arc
功 能: 畫一弧線
用 法: void far arc(int x, int y, int stangle, int endangle, int radius);
程序例:
#include graphics.h
#include stdlib.h
#include stdio.h
#include conio.h
int main(void)
{
/* request auto detection */
int gdriver = DETECT, gmode, errorcode;
int midx, midy;
int stangle = 45, endangle = 135;
int radius = 100;
/* initialize graphics and local variables */
initgraph(gdriver, gmode, "");
/* read result of initialization */
errorcode = graphresult(); /* an error occurred */
if (errorcode != grOk)
{
printf("Graphics error: %s\n", grapherrormsg(errorcode));
printf("Press any key to halt:");
getch();
exit(1); /* terminate with an error code */
}
midx = getmaxx() / 2;
midy = getmaxy() / 2;
setcolor(getmaxcolor());
/* draw arc */
arc(midx, midy, stangle, endangle, radius);
/* clean up */
getch();
closegraph();
return 0;
}
函數(shù)名: asctime
功 能: 轉(zhuǎn)換日期和時(shí)間為ASCII碼
用 法: char *asctime(const struct tm *tblock);
程序例:
#include stdio.h
#include string.h
#include time.h
int main(void)
{
struct tm t;
char str[80];
/* sample loading of tm structure */
t.tm_sec = 1; /* Seconds */
t.tm_min = 30; /* Minutes */
t.tm_hour = 9; /* Hour */
t.tm_mday = 22; /* Day of the Month */
t.tm_mon = 11; /* Month */
t.tm_year = 56; /* Year - does not include century */
t.tm_wday = 4; /* Day of the week */
t.tm_yday = 0; /* Does not show in asctime */
t.tm_isdst = 0; /* Is Daylight SavTime; does not show in asctime */
/* converts structure to null terminated
string */
strcpy(str, asctime(t));
printf("%s\n", str);
return 0;
}
函數(shù)名: asin
功 能: 反正弦函數(shù)
用 法: double asin(double x);
程序例:
#include stdio.h
#include math.h
int main(void)
{
double result;
double x = 0.5;
result = asin(x);
printf("The arc sin of %lf is %lf\n", x, result);
return(0);
}
函數(shù)名: assert
功 能: 測試一個(gè)條件并可能使程序終止
用 法: void assert(int test);
程序例:
#include assert.h
#include stdio.h
#include stdlib.h
struct ITEM {
int key;
int value;
};
/* add item to list, make sure list is not null */
void additem(struct ITEM *itemptr) {
assert(itemptr != NULL);
/* add item to list */
}
int main(void)
{
additem(NULL);
return 0;
}
函數(shù)名: atan
功 能: 反正切函數(shù)
用 法: double atan(double x);
程序例:
#include stdio.h
#include math.h
int main(void)
{
double result;
double x = 0.5;
result = atan(x);
printf("The arc tangent of %lf is %lf\n", x, result);
return(0);
}
函數(shù)名: atan2
功 能: 計(jì)算Y/X的反正切值
用 法: double atan2(double y, double x);
程序例:
#include stdio.h
#include math.h
int main(void)
{
double result;
double x = 90.0, y = 45.0;
result = atan2(y, x);
printf("The arc tangent ratio of %lf is %lf\n", (y / x), result);
return 0;
}
函數(shù)名: atexit
功 能: 注冊終止函數(shù)
用 法: int atexit(atexit_t func);
程序例:
#include stdio.h
#include stdlib.h
void exit_fn1(void)
{
printf("Exit function #1 called\n");
}
void exit_fn2(void)
{
printf("Exit function #2 called\n");
}
int main(void)
{
/* post exit function #1 */
atexit(exit_fn1);
/* post exit function #2 */
atexit(exit_fn2);
return 0;
}
函數(shù)名: atof
功 能: 把字符串轉(zhuǎn)換成浮點(diǎn)數(shù)
用 法: double atof(const char *nptr);
程序例:
#include stdlib.h
#include stdio.h
int main(void)
{
float f;
char *str = "12345.67";
f = atof(str);
printf("string = %s float = %f\n", str, f);
return 0;
}
函數(shù)名: atoi
功 能: 把字符串轉(zhuǎn)換成長整型數(shù)
用 法: int atoi(const char *nptr);
程序例:
#include stdlib.h
#include stdio.h
int main(void)
{
int n;
char *str = "12345.67";
n = atoi(str);
printf("string = %s integer = %d\n", str, n);
return 0;
}
函數(shù)名: atol
功 能: 把字符串轉(zhuǎn)換成長整型數(shù)
用 法: long atol(const char *nptr);
程序例:
#include stdlib.h
#include stdio.h
int main(void)
{
long l;
char *str = "98765432";
l = atol(lstr);
printf("string = %s integer = %ld\n", str, l);
return(0);
}
C語言輸入輸出函數(shù)有很多,標(biāo)準(zhǔn)I/O函數(shù)中包含了如下幾個(gè)常用的函數(shù):
scanf,printf,getc,putc,getchar,putchar,gets,puts,fgets,fputs,fgetc,fputc,fscanf,fprintf等.
int
getc(FILE
*fp)
getc主要是從文件中讀出一個(gè)字符.常用的判斷文件是否讀取結(jié)束的語句為
(ch
=
getc(fp))
!=
EOF.EOF為文件結(jié)束標(biāo)志,定義在stdio.h中,就像EXIT_SUCCESS,EXIT_FAILURE定義在stdlib.h中一樣,文件也可以被理解為一種流,所以當(dāng)fp為stdin時(shí),getc(stdin)就等同于getchar()了.
int
putc(int
ch,FILE
*fp)
putc主要是把字符ch寫到文件fp中去.如果fp為stdout,則putc就等同于putchar()了.
int
getchar(void)
getchar主要是從標(biāo)準(zhǔn)輸入流讀取一個(gè)字符.默認(rèn)的標(biāo)準(zhǔn)輸入流即stdio.h中定義的stdin.但是從輸入流中讀取字符時(shí)又涉及到緩沖的問題,所以并不是在屏幕中敲上一個(gè)字符程序就會(huì)運(yùn)行,一般是通過在屏幕上敲上回車鍵,然后將回車前的字符串放在緩沖區(qū)中,getchar就是在緩沖區(qū)中一個(gè)一個(gè)的讀字符.當(dāng)然也可以在while循環(huán)中指定終止字符,如下面的語句:while
((c
=
getchar())
!=
'#')這是以#來結(jié)束的.
int
putchar(int
ch)
putchar(ch)主要是把字符ch寫到標(biāo)準(zhǔn)流stdout中去.
char
*
gets(char
*str)
gets主要是從標(biāo)準(zhǔn)輸入流讀取字符串并回顯,讀到換行符時(shí)退出,并會(huì)將換行符省去.
int
puts(char
*str)
puts主要是把字符串str寫到標(biāo)準(zhǔn)流stdout中去,并會(huì)在輸出到最后時(shí)添加一個(gè)換行符.
char
*fgets(char
*str,
int
num,
FILE
*fp)
str是存放讀入的字符數(shù)組指針,num是最大允許的讀入字符數(shù),fp是文件指針.fgets的功能是讀一行字符,該行的字符數(shù)不大于num-1.因?yàn)閒gets函數(shù)會(huì)在末尾加上一個(gè)空字符以構(gòu)成一個(gè)字符串.另外fgets在讀取到換行符后不會(huì)將其省略.
int
fputs(char
*str,
file
*fp)
fputs將str寫入fp.fputs與puts的不同之處是fputs在打印時(shí)并不添加換行符.
int
fgetc(FILE
*fp)
fgetc從fp的當(dāng)前位置讀取一個(gè)字符.
int
fputc(int
ch,
file
*fp)
fputc是將ch寫入fp當(dāng)前指定位置.
int
fscanf(FILE
*fp,
char
*format,
輸入列表)
fscanf按照指定格式從文件中出讀出數(shù)據(jù),并賦值到參數(shù)列表中.
int
fprintf(FILE
*fp,
char
*format,
輸出列表)
fprintf將格式化數(shù)據(jù)寫入流式文件中.
數(shù)據(jù)塊讀寫函數(shù)
fread
(buffer,size,count,fp);
fwrite(buffer,size,count,fp);
參數(shù)說明:
buffer:是一個(gè)指針。
對(duì)fread
來說,它是讀入數(shù)據(jù)的存放地址。
對(duì)fwrite來說,是要輸出數(shù)據(jù)的地址(均指起始地址)。
size:
要讀寫的字節(jié)數(shù)。
count:
要進(jìn)行讀寫多少個(gè)size字節(jié)的數(shù)據(jù)項(xiàng)。
fp:
文件型指針。