c语言中常用函数大全.docx
(一)输入输出常用函数1,printf(1)有符号int[-][][0][width][.precision][l][h]d-左对齐正数前加‘’0右对齐,acwidth.precision,按实际输出,否者左边补零(2)无符号int[-][][0][width][.precision][l][h]u|o|x|X”ox/X”输出0,0 x,0X.precision同上,TC/BC包含0 x/X,VC下不包含(3)实数输出[-][][][0][width][.precision][l][L]f|e|E|g|G必须输出小数点.precision小数位数(四舍五入)(4)字符和字符串的输出[-][0][width]c[-][0][width][.precision]s.precisionS的前precision位2,scanf[*][width][l][h]TypeWith指定输入数据的宽度,遇空格、Tab、\n结束*抑制符scanf“2d*2d3d”,num112,num2567.注意(1)指定width时,读取相应width位,但按需赋值Scanf(“3c3c”,ch1,ch2)输入abcdefgch1ach2d(2)c输入单字符时“空格、转义字符”均是有效字符(二)ascll字符/字符串/文件函数1;字符非格式化输入函数(1)intgetcharvoid接受字符,以回车结束,回显(2)intgetcFILE*stream从stream中接受字符,以回车结束,回显streamstdin时,(1)(2)(3)intgetchevoid直接读取字符,回显conio.h(4)intgetcharvoid直接读取字符,不回显conio.h注意(1,2)对于回车键返回‘\n’(3,4)对于回车键返回‘\r’2;字符/串非格式化输出函数(1)intputcharintc正常返回字符代码值,出错返回EOF(2)intputcintc,FILE*stream正常返回字符代码值,出错返回EOFstreamstdout12(3)intputschar*stream自动回车换行1;字符串的赋值includeVoid*memsetvoid*s,charch,unsignedn将以S为首地址的,一片连续的N个字节内存单元赋值为CH.Void*memcpyvoid*d,void*s,unsignedn将以S为首地址的一片连续的N个字节内存单元的值拷贝到以D为首地址的一片连续的内存单元中。(对于数据类型、大小相同的数组可以用此函数拷贝/部分拷贝)2;include1strlen求字符串长度求字符串长度,从给定的字符串的起始地址开始,到第一个’\0’为止(不包含’\0’)。转义字符\ddd、\xhh;看做一个字符。2字符串的复制Strcpy字符数组1,字符串2;将字符串2,复制到字符数组1中(包含\0);1要足够大。1必须为字符数组变量2字符数组变量或字符串常量strncpy字符数组1,字符串2,长度n将2中的前N个字符复制到1中,并在末尾加\0;nstrlen2时,其等价strcpy。4字符串的比较12返回正数12返回011void*callocunsignedn,unsignedsize;功能在内存的动态存储区中分配n个长度为size的连续空间,并且赋初值为0(malloc侧不是);函数返回一个指向分配起始地址的指针;如果分配不成功,返回NULL。2原型externvoid*reallocvoid*mem_address,unsignedintnewsize语法指针名(数据类型*)realloc(要改变内存大小的指针名,新的大小)。//新的大小一定要大于原来的大小不然的话会导致数据丢失头文件include有些编译器需要include,在TC2.0中可以使用alloc.h头文件功能先按照newsize指定的大小分配空间,将原有数据从头到尾拷贝到新分配的内存区域,而后释放原来mem_address所指内存区域,同时返回新分配的内存区域的首地址。即重新分配存储器块的地址。返回值如果重新分配成功则返回指向被分配内存的指针,否则返回空指针NULL。注意这里原始内存中的数据还是保持不变的。当内存不再使用时,应使用free函数将内存块释放。(三)文件函数moder打开已存在文件,准备从文件中读取数据,不能写入r可读可写w创建一个新文件,准备写入;如文件已存在,此文件将被空文件覆盖w增加“读取”操作a打开已存在文件,准备在文件尾部追加数据,不能读取。如文件不存在,侧创建此文件,准备写入。a增加“读取”t打开一个文本文件(缺省值)b打开一个二进制文件一文件的打开与关闭1打开文件FILE*(char*filename,char*mode)Filename是字符串,表示打开的文件名,文件名前可以带路径。Mode也是字符串,表示打开文件的方式。功能----按指定方式打开文件。返回值----如果文件打开成功,返回“文件结构体指针”,否者返回NULL(如文件不存在或则写文件时不能创建)。(“A\\user\\asd.txt”,”r”);2关闭文件Int*fclose(FILE*filename)正常关闭返回0;否者返回非0。3IntfeofFILE*filepointer功能----在执行文件操作时,遇到文件尾,返回1;否则返回0;Eg.feoffp1表示源文件(用于输入)未结束,循环继续。此函数适用于ASCII码文件盒二进制文件。EOF是文本文件结束的标志。在文本文件中,数据是以字符的ASCⅡ代码值的形式存放,普通字符的ASCⅡ代码的范围是32到127(十进制),EOF的16进制代码为0 x1A(十进制为26),因此可以用EOF作为文件结束标志。当把数据以二进制形式存放到文件中时,就会有-1值的出现,因此不能采用EOF作为二进制文件的结束标志。为解决这一个问题,ASCIC提供一个feof函数,用来判断文件是否结束。feof函数既可用以判断二进制文件又可用以判断文本文件。“C”语言的“feof”函数和数据库中“eof”函数的运作是完全不同的。数据库中“eof”函数读取当前指针的位置,“C”语言的“feof”函数返回的是最后一次“读操作的内容”。多年来把“位置和内容”相混,从而造成了对这一概念的似是而非。那么,位置和内容到底有何不同呢举个简单的例子,比如有人说“你走到火车的最后一节车箱”这就是位置。而如果说“请你一直向后走,摸到铁轨结束”这就是内容。也就是说用内容来判断会“多走一节”。这就是完全依赖于“whilefeofFP{...}”进行文件复制时,目标文档总会比源文档“多出一些”的原因。二文件的读写1字符读写函数fgetc和fputc1intfgetcFILE*filepointer