C语言库函数学习Word下载.docx
- 文档编号:4153983
- 上传时间:2023-05-02
- 格式:DOCX
- 页数:82
- 大小:54.78KB
C语言库函数学习Word下载.docx
《C语言库函数学习Word下载.docx》由会员分享,可在线阅读,更多相关《C语言库函数学习Word下载.docx(82页珍藏版)》请在冰点文库上搜索。
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临时文件名长度>
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字符串和内存操作的函数
内存操作:
查找内存块中的一个字符
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”;
returnvalue=3;
string=“cafbbage”;
returnvalue=2;
string=“vcabbage”;
returnvalue=0;
size_tstrspn(constchar*string,constchar*str);
在一个字符串中查找另一字符串的任意字符第一次出现的下标例如
str=“ag”;
returnvalue=1;
string=“xcabbage”;
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<
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
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 库函数 学习