C语言库函数学习.docx

上传人:b****2 文档编号:2206629 上传时间:2023-05-02 格式:DOCX 页数:82 大小:54.78KB
下载 相关 举报
C语言库函数学习.docx_第1页
第1页 / 共82页
C语言库函数学习.docx_第2页
第2页 / 共82页
C语言库函数学习.docx_第3页
第3页 / 共82页
C语言库函数学习.docx_第4页
第4页 / 共82页
C语言库函数学习.docx_第5页
第5页 / 共82页
C语言库函数学习.docx_第6页
第6页 / 共82页
C语言库函数学习.docx_第7页
第7页 / 共82页
C语言库函数学习.docx_第8页
第8页 / 共82页
C语言库函数学习.docx_第9页
第9页 / 共82页
C语言库函数学习.docx_第10页
第10页 / 共82页
C语言库函数学习.docx_第11页
第11页 / 共82页
C语言库函数学习.docx_第12页
第12页 / 共82页
C语言库函数学习.docx_第13页
第13页 / 共82页
C语言库函数学习.docx_第14页
第14页 / 共82页
C语言库函数学习.docx_第15页
第15页 / 共82页
C语言库函数学习.docx_第16页
第16页 / 共82页
C语言库函数学习.docx_第17页
第17页 / 共82页
C语言库函数学习.docx_第18页
第18页 / 共82页
C语言库函数学习.docx_第19页
第19页 / 共82页
C语言库函数学习.docx_第20页
第20页 / 共82页
亲,该文档总共82页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

C语言库函数学习.docx

《C语言库函数学习.docx》由会员分享,可在线阅读,更多相关《C语言库函数学习.docx(82页珍藏版)》请在冰点文库上搜索。

C语言库函数学习.docx

C语言库函数学习

TheStandardCLibrary经典的基础

C的标志库函数是学习和使用C语言的基础,是编写经典C程序的基础,是学习其他计算机知识的基础.C标志库中一共包含了15个头文件:

1:

NDEBUG

NDEBUG宏是调试开关,当使用#includeNDEBUG时程序为非调试状态,这种状态下调试宏assert不起作用。

assert

调试宏assert只有在程序处于调试状态下才发挥作用,它的使用形式如下:

assert(expression);当条件为假时会在屏幕中输出如下的调试信息:

“Assertionfailed:

expression,filexyz,linennn”,其中xyp是assert所在的文件名,nnn为assert在该文件中的位置。

assert宏还有许多用法,请参看《WritingCleanCode》第二章设计并使用断言。

2:

下面的类型,宏,函数都是分类的

其他:

size_tsizeof返回的值

NULL空指针

文件:

FILE文件的类型

fpos_t文件中指针的位置

EOF文件末尾<0

FILENAME_MAX文件名最大值>0

FOPEN_MAX同时打开文件的最大值>8

SEEK_SET文件头

SEEK_CUR文件当前位置

SEEK_END文件末尾

打开文件

FILE*fopen(constchar*filename,constchar*mode);

更改当前流相关的文件

FILE*freopen(constchar*filename,constchar*mode,FILE*stream);

关闭文件

intfclose(FILE*stream);

清除流中的错误标志或文件末尾标志

voidclearerr(FILE*stream);

测试流上的文件末尾标志

intfeof(FILE*stream);

测试流上的错误标志

intferror(FILE*stream);

将一个字符放回到流中

intungetc(intc,FILE*stream);

从流中读一个字符

intfgetc(FILE*stream);

intgetc(FILE*stream);

写一个字符到一个流

intfputc(intc,FILE*stream);

intputc(intc,FILE*stream);

从流中获取一个字符串

char*fgets(char*s,intn,FILE*stream);

写一个字符串到一个流

intfputs(constchar*s,FILE*stream);

打印一个格式化数据到一个流

intfprintf(FILE*stream,constchar*format,...);

使用一个参量列表指针格式化到流的数据

intvfprintf(FILE*stream,constchar*format,va_listap);

从一个流中读取格式化数据

intfscanf(FILE*stream,constchar*format,...);

从一个流中读数据

size_tfread(char*buffer,size_tsize,size_tcount,FILE*stream);

写数据到一个流

intfwrite(constchar*buffer,size_tsize,size_tcount,

FILE*stream);

获取流的文件位置指示符

intfgetpos(FILE*stream,fpos_t*pos);

设置流位置指示符

intfsetpos(FILE*stream,constfpos_t*pos);

移动文件指针到一个指定的位置

intfseek(FILE*stream,longoffset,intorigin);

获得文件指针相对于文件头的偏移量

longftell(FILE*stream);

重新定位一个文件指针到文件开头

voidrewind(FILE*steam);

删除一个文件

intremove(constchar*path);

更改一个文件或目录

intrename(constchar*oldname,constchar*newname);

缓冲区:

_IOFBF

_IOLBF

_IONBF缓冲区类型

BUFSIZE缓冲区尺寸>=256

刷新一个流并清空与流相关的缓冲区的内容

intfflush(FILE*stream);

控制流的缓冲区,已经被setvbuf代替

voidsetbuf(FILE*stream,char*buffer);

控制流的缓冲区类型和缓冲区大小

intsetvbuf(FILE*stream,char*buffer,intmode,size_tsize);

将一个格式化数据写入一个字符串

intsprintf(char*buffer,constchar*format,...);

从字符串中读格式化数据

intsscanf(constchar*buffer,constchar*format,...);

从参量列表指针格式化到字符串

intvsprintf(char*buffer,constchar*format,va_listap);

临时文件

L_tmpnam临时文件名长度>0

TMP_MAX产生唯一文件名的最大数目>=25

以二进制读写的方式建立一个临时文件

FILE*tmpfile(void);

建立一个临时文件名

char*tmpname(char*string);

标准流:

stdin标准输入流

stdout标准输出流

stderr标准错误输出流

从stdin获得一个字符

intgetchar(void);

把字符写道stdout

intputchar(intc);

从stdin中获取一行

char*gets(char*buffer);

写一个字符串到stdout

intputs(constchar*string);

打印一个错误消息到stderr

voidperror(constchar*error);

打印格式化数据到stdout

intprintf(constchar*format,...);

从stdin读格式化数据

intscanf(constchar*format,...);

从参量列表指针格式化到stdout

intvprintf(constchar*format,va_listap);

3:

中定义的函数都是工具类的函数可以分类学习

其他:

NULL

size_t

执行一个系统命令

intsystem(constchar*command);

程序控制:

EXIT_SUCCESS

EXIT_FAILUREexit函数的推出参数

终止当前进程并返回一个错误代码

voidabort(void);

在推出时执行指定的函数

intatexit(void(*func)(void));

终止调用进程

voidexit(intstatus);

数学工具:

div_t函数div的返回类型

ldiv_t函数ldiv的返回类型

RAND_MAXrand函数返回的最大值

产生一个伪随机数

intrand(void);

设置一个随机起始点

voidsrand(unsignedintseed);

计算绝对值

intabs(inti);

计算一个long整数的绝对值

longlabs(longl);

执行一个快速排序

voidqsort(void*base,size_tcount,size_tsize,

int(*compare)(constvoid*elem1,constvoid*elem2));

执行一个排序数组的二叉查找

void*bsearch(constvoid*key,constvoid*base,

size_tcount,size_tsize,

int(*compare)(constvoid*elem1,constvoid*elem2)

);

计算两个数的商与余数

div_tdiv(intnumber,intdenom);

计算两个long整数的商和余数

ldiv_tldiv(longnumber,longdenom);

字符/字符串工具

wchar_t宽字符宽度

MB_CUR_MAX多字节字符中的最大字节数

将字符串转换成双精度

doubleatof(constchar*string);

将字符串转换成整数

intatoi(constchar*string);

将字符串转换成长整形

longatol(constchar*string);

把字符串转换成一个双精度值

doublestrtod(constchar*string,char**endptr);

把字符串转换成长整形

longstrtol(constchar*string,char**endptr,intbase);

把字符串转换成无符号长整形

unsignedlongstrtoul(constchar*string,char**endptr,intbase);

获取长度和确定一个多字节字符的有效性

intmblen(constchar*s,size_tcount);

将一个多字节字符序列转换成宽字符序列

size_tmbstowcs(wchar_t*wcstr,constchar*mbstr,size_tcount));

将一个多字节字符转换成对应的宽字符

intmbtowc(wchar_t*wchar,constchar*mbchar,size_tcount));

将一个宽字符序列转换成一个多字节字符序列

size_twcstombs(char*mbstr,wchar_t*wcstr,size_tcount));

将一个宽字符转换成一个多字节字符

intwctomb(char*mbchar,wchar_twchar);

内存管理工具:

分配内存块

void*malloc(size_tsize);

在内存中分配一个数组并初始化为0

void*calloc(size_tcount,size_tsize);

重新分配内存块

void*recalloc(void*memblock,size_tsize);

释放一块内存

voidfree(void*memblock);

环境工具:

从当前环境中取得一个值

char*getenv(constchar*varname);

4

头文件中定义了有关于字符操作的函数

判断一个字符是否为控制字符(0x00~0x1f或0x7f)

intiscntrl(intc);

判断一个字符是否为空白字符(0x09~0x0d或0x20)

intisspace(intc);

判断一个字符是否为可打印字符(0x20~0x7e)

intisprint(intc);

判断一个字符是否为非空格的其他可打印字符(0x21~0x7e)

intisgraph(intc);

判断一个字符是否为标点字符

intispunct(intc);

判断一个字符是否为字母数字字符

intisalnum(intc);

判断一个字符是否为十进制数字字符

intisdigit(intc);

判断一个字符是否为十六进制数字字符

intisxdigit(intc);

判断一个字符是否为字母字符

intisalpha(intc);

判断一个字符是否为大写字母字符

intisupper(intc);

判断一个字符是否为小写字母字符

intislower(intc);

转换字符为小写

inttolower(intc);

转换字符为大写

inttoupper(intc);

5:

中声明的函数都是关于c字符串和内存操作的函数

其他:

NULL

size_t

内存操作:

查找内存块中的一个字符

void*memchr(constvoid*buffer,intc,size_tcount);

比较两个内存块中的字符

intmemcmp(constvoid*buffer1,constvoid*buffer2,size_tcount);

在在内存块之间拷贝字节

void*memcpy(void*dest,constvoid*src,size_tcount);

移动内存块

void*memmove(void*dest,constvoid*src,size_tcount);

用指定的字符填充内存

void*memset(void*dest,intc,size_tcount);

对于以上的函数中的size_tcount项使用需注意了

当你按如下方式使用是错误的

str=(char*)malloc(sizeof(char)*81);

strp=(char*)memchr(str,‘u’,sizeof(str));

free(str);

这是错误的str是指针它的长度不是整个字符串的长度,所以strp得不到正确的结果

应改为一个确定的数或者是实际数组的长度如strlen(str).

字符串操作:

字符串拼接

char*strcat(char*dest,constchar*src);

向一个字符串末尾添加指定长度的字符串

char*strncat(char*dest,constchar*src,size_tn);

在字符串中查找一个字符

char*strchr(constchar*str,intc);

在一个字符串中查找一个字符最后一次出现

char*strrchr(constchar*str,intc);

比较字符串

intstrcmp(constchar*str1,constchar*str2);

比较两个字符串中指定长度的子串的大小

intstrncmp(constchar*str1,constchar*str2,size_tn);

使用指定场所的信息比较字符串

intstrcoll(constchar*str1,constchar*str2);

基于指定场所转换一个字符串

size_tstrxfrm(char*dest,constchar*src,size_tn);

拷贝一个字符串

char*strcpy(char*dest,constchar*src);

将源字符串中指定长度的子串拷贝到目的串中

char*strncpy(char*dest,constchar*src,size_tn);

查找一个子串

char*strstr(constchar*string,constchar*str);

查找string包含str中包含的字符的长度,例如:

string=“cabbage”;str=“abc”;returnvalue=5;

string=“cabbage”;str=“abc”;returnvalue=3;

string=“cafbbage”;str=“abc”;returnvalue=2;

string=“vcabbage”;str=“abc”;returnvalue=0;

size_tstrspn(constchar*string,constchar*str);

在一个字符串中查找另一字符串的任意字符第一次出现的下标例如

string=“cabbage”;str=“ag”;returnvalue=1;

string=“xcabbage”;str=“ag”;returnvalue=2;

size_tstrcspn(constchar*string,constchar*str);

返回在string中出现str字符集中的第一个字符的位置例如:

string=“kdkowadkfakkei”;str=“aeiw”;

returnvalue=“wadkfakkei”;

char*strpbrk(constchar*string,constchar*str);

查找字符串中下一个语言符号

所谓的语言符号就是指用户定义的表示一个意义的整体,string是字符串,str是包含分割语言符合的分隔符的集合.使用方法例如:

token=strtok(string,str);

while(token!

=NULL)

{

puts(token);

token=strtok(NULL,str);

}

string=“kks\niiwojfie\twlk,diwpob.owf’ksif\nli”;

str=“\n\t,.’”;

结果为:

kks

iiwo

jfie

wlk

diwpob

owf

ksif

li

str=“w”;

结果为:

kks\nii

ojfie\t

lk,di

pob.o

f’ksif\nli

char*strtok(char*string,constchar*str);

通过系统错误编号来获得系统错误消息

char*strerror(interrorcode);

获取字符串有效长度(不包括’\0’)

size_tstrlen(constchar*str);

6:

中定义了整形的各种形式的边界值

char

CHAR_BIT一个char占的位数

MB_LEN_MAX多字节中char占的字节数

CHAR_MAX

CHAR_MIN

SCHAR_MAX

SCHAR_MIN

UCHAR_MAX

short

SHRT_MAX

SHRT_MIN

USHRT_MAX

int

7:

NULL

size_t

wchar_t

ptrdiff_t指针之间的差值

size_toffsetof(structName,memberName);结构成员相对于结构的偏移量

INT_MAX

INT_MIN

UINT_MAX

long

LONG_MAX

LONG_MIN

ULONG_MAX

8

NULL

size_t

CLOCKS_PER_SEC每秒的时钟数

CLK_TCK每秒的时钟数被CLOCKS_PER_SEC代替

clock_tclock函数的返回类型表示进程的逝去时钟数

time_ttime等函数的返回值表示日历时间

structtm

{

inttm_sec;秒(0-59)

inttm_min;分钟(0-59)

inttm_hour;小时(0-24)

inttm_mday;月中的天数(多少号)(1-31)

inttm_mon;月份(0-11)

inttm_year;年份从1900年开始

inttm_wday;星期(0-6,星期日=0)

inttm_yday;一年中的日期(0-365,1月1号=0)

inttm_isdst;夏令时(正数有效,0无效,负数未定义)

};

返回调用进程使用的时钟数

clock_tclock(void);

获取系统时间(从1970,1,100:

00:

00开始到现在的的秒数)

timer可以为NULL表示只返回不存储

time_ttime(time_t*timer);

返回两个时间的差值

doubledifftime(time_ttime1,time_ttime2);

将time_t转换成字符串

char*ctime(consttime_t*timer);

转换一个时间值有time_t转换到structtm

structtm*locattime(consttime_t*timer);

gmtime使用UTC世界时间代码而不是本地时间

structtm*gmtime(consttime_t*timer);

将structtm转换成time_t

time_tmktime(structtm*timer);

localtimegmtimemktime使用同一个structtm静态结构.每次调用前都清除其中的容

将structtm转换成字符串

char*asctime(conststructtm*timer);

格式化一个时间字符串

size_tstrftime(char*dest,size_tsize,constchar*format,

conststructtm*timer);

9:

一样是定义边界值的,定义的是浮点数的边界值

double

DBL_DIGdo

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 医药卫生 > 基础医学

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2