c语言中常用函数大全

(一)输入输出常用函数

1,printf

(1)有符号int

%[-][+][0][width][.precision][l][h] d

-:左对齐

+:正数前加‘+’

0:右对齐,acwidth

.precision:至少输出位数。若实际的位数>.precision,按实际输出,否者左边补零

(2)无符号int

%[-][#][0][width][.precision][l][h] u|o|x|X

#:”%o %x/X”输出0,0x,0X

.precision:同上,TC/BC包含0x/X,VC下不包含

(3)实数输出

%[-][+][#][0][width][.precision][l][L] f|e|E|g|G

#:必须输出小数点

.precision:小数位数(四舍五入)

(4)字符和字符串的输出

%[-][0][width] c %[-][0][width] [.precision] s

.precision:S的前precision位

2,scanf

%[*][width] [l][h]Type

With:指定输入数据的宽度,遇空格、Tab、\n结束

*:抑制符scanf(“%2d%*2d%3d”,&num1,&num2) 输入9\n;num1==12,num2==567.

注意:

(1)指定width时,读取相应width位,但按需赋值

Scanf(“%3c%3c”,&ch1,&ch2)输入a bc d efg ch1==a ch2==d

(2)%c 输入单字符时“空格、转义字符”均是有效字符

(二)ascll字符/字符串/文件函数

1;字符非格式化输入函数

(1)int getchar(void) 接受字符,以回车结束,回显

(2)int getc(FILE*stream) 从stream中接受字符,以回车结束,回显stream=stdin时,(1)==(2)(3)int getche(void) 直接读取字符,回显conio.h

(4)int getchar(void) 直接读取字符,不回显conio.h

注意:

(1,2)对于回车键返回‘\n’(3,4)对于回车键返回‘\r’

2;字符/串非格式化输出函数

(1)int putchar(int c) 正常返回字符代码值,出错返回EOF

(2)int putc(int c,FILE*stream) 正常返回字符代码值,出错返回EOF stream==stdout(1)=(2)

(3)int puts(char*stream) 自动回车换行

1;字符串的赋值

#include< string.h memory.h >

Void *memset (void *s, char ch, unsigned n)

将以S为首地址的,一片连续的N个字节内存单元赋值为CH.

Void *memcpy ( void *d, void*s, unsigned n)

将以S为首地址的一片连续的N个字节内存单元的值拷贝到以D为首地址的一片连续的内存单元中。(对于数据类型、大小相同的数组可以用此函数拷贝/部分拷贝)

2;#include

(1)strlen ( 求字符串长度)

求字符串长度,从给定的字符串的起始地址开始,到第一个’\0’为止(不包含’\0’)。

转义字符\ ddd、\xhh;看做一个字符。

(2)字符串的复制

Strcpy(字符数组1,字符串2);

将字符串2,复制到字符数组1中(包含\0);1要足够大。

1:必须为字符数组变量 2字符数组变量或字符串常量

strncpy(字符数组1,字符串2,长度n)

将2中的前N个字符复制到1中,并在末尾加\0;

n>=strlen(2)时,其等价strcpy。

(4)字符串的比较

1>2 返回正数

1=2 返回0

1<2 返回负数

比较规则:逐个比较字符的ASCII码值,直到遇到不同的字符或‘\0’。

Strcmp(字符串1,字符串2)

Stricmp/Strcmpi (字符串1,字符串2)“不区分大小写”

Strncmp(字符串1,字符串2,长度n)

将字符串1前N个字符与字符串2前N个字符进行比较(n足够大时等价strcmp)

Strincmp(字符串1,字符串2,长度n)

(5)字符串的连接

Strcat(字符串1,字符串2)

将2连接到1后面(包含\0);1要足够大。

Strncat(字符串1,字符串2,unsigned int count)

将2的前N个字符连接到1后面以\0结束;

3;动态分配内存include

(1)void *calloc(unsigned n, unsigned size);

功能: 在内存的动态存储区中分配n个长度为size的连续空间,并且赋初值为0(malloc侧不是);函数返回一个指向分配起始地址的指针;如果分配不成功,返回NULL。

(2) 原型:

extern void *realloc(void *mem_address, unsigned int newsize)

语法:

指针名=(数据类型*)realloc(要改变内存大小的指针名,新的大小)。//新的大小一定要大于原来的大小不然的话会导致数据丢失!

头文件:#include <> 有些编译器需要#include ,在TC2.0中可以使用alloc.h头文件

功能:先按照newsize指定的大小分配空间,将原有数据从头到尾拷贝到新分配的内存区域,而后释放原来mem_address所指内存区域,同时返回新分配的内存区域的首地址。即重新分配存储器块的地址。

返回值:如果重新分配成功则返回指向被分配内存的指针,否则返回空指针NULL。

注意:这里原始内存中的数据还是保持不变的。当内存不再使用时,应使用free()函数将内存块释放。

(三)文件函数

mode:

r:打开已存在文件,准备从文件中读取数据,不能写入

r+ :可读可写

w:创建一个新文件,准备写入;如文件已存在,此文件将被空文件覆盖

w+:增加“读取”操作

a:打开已存在文件,准备在文件尾部追加数据,不能读取。

如文件不存在,侧创建此文件,准备写入。

a+:增加“读取”

t:打开一个文本文件(缺省值)

b:打开一个二进制文件

一:文件的打开与关闭

1:打开文件

FILE * fopen(char*filename, char*mode)

Filename:是字符串,表示打开的文件名,文件名前可以带路径。

Mode:也是字符串,表示打开文件的方式。

功能----按指定方式打开文件。

返回值----如果文件打开成功,返回“文件结构体指针”,否者返回NULL(如:文件不存在或则写文件时不能创建)。

Fopen(“A:\\user\\asd.txt”,”r+”);

2:关闭文件

Int*fclose(FILE*filename)

正常关闭返回0;否者返回非0。

3:

Int feof(FILE*filepointer)

相关文档
最新文档