C语言函数大全(精简版)

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

字符串函数∙bcmp
∙bcopy
∙bzero
∙memccpy ∙memchr ∙memcmp ∙memcpy ∙memicmp ∙memmove ∙memset ∙movmem ∙setmem ∙stpcpy ∙strcat ∙strchr ∙strcmp ∙strcmpi ∙strcpy ∙strcspn ∙strdup ∙stricmp ∙strlen ∙strlwr ∙strncat ∙strncmp ∙strncmpi ∙strncpy ∙strnicmp ∙strpbrk ∙strrev ∙strset ∙strstr ∙strtok ∙strupr
数学函数
∙abs
∙acos
∙asin
∙atan
∙atan2
∙ceil
∙cos
∙cosh
∙exp
∙fabs
∙floor
∙fmod
∙frexp
∙hypot
∙ldexp
∙log
∙log10
∙modf
∙pow
∙pow10
∙sin
∙sinh
∙sqrt
∙tan
∙tanh
输入输出函数
∙getchar
∙kbhit
∙printf
∙putchar
系统函数
∙exit
∙itoa
字符函数
∙isalnum
∙isalpha
∙iscntrl
∙isdigit
∙islower
∙isascii
∙isgraph
∙isprint
∙ispunct
∙isspace
∙isupper
∙isxdigit
∙toascii
∙tolower
∙toupper
内存管理函数
∙calloc
∙free
∙malloc
∙realloc
ctype.h 字符函数
isalnum
功能:判断字符c是否为字母或数字
说明:当c为数字0-9或字母a-z及A-Z时,返回非零值,否则返回零。

举例:
printf("%c:%s\n",c,isalnum(c)?"yes":"no");
isalpha
功能:判断字符c是否为英文字母
说明:当c为英文字母a-z或A-Z时,返回非零值,否则返回零。

举例:
printf("%c: %s letter",c,isalpha(c)?"is":"not");
iscntrl
功能:判断字符c是否为控制字符
说明:当c在0x00-0x1F之间或等于0x7F(DEL)时,返回非零值,否则返回零。

举例:
printf("%x:%s\n",c,iscntrl(c)?"yes":"no");
isdigit
功能:判断字符c是否为数字
说明:当c为数字0-9时,返回非零值,否则返回零。

举例:
printf("%c:%s\n",c,isdigit(c)?"yes":"no");
islower
功能:判断字符c是否为小写英文字母
说明:当c为小写英文字母(a-z)时,返回非零值,否则返回零。

举例:
printf("%c:%s\n",c,islower(c)?"yes":"no");
isascii
功能:判断字符c是否为ascii码
说明:当c为ascii码时,返回非零值,否则返回零。

ascii码指0x00-0x7F之间的字符举例:
if(isascii(s[i])) putchar('^');
功能:判断字符c是否为除空格外的可打印字符
说明:当c为可打印字符(0x21-0x7e)时,返回非零值,否则返回零。

举例:
printf("%c:%s\n",c,isgraph(c)?"yes":"no");
isprint
功能:判断字符c是否为可打印字符(含空格)
说明:当c为可打印字符(0x20-0x7e)时,返回非零值,否则返回零。

举例:
printf("%c:%s\n",c,isprint(c)?"yes":"no");
ispunct
功能:判断字符c是否为标点符号
说明:当c为标点符号时,返回非零值,否则返回零。

标点符号指那些既不是字母数字,也不是空格的可打印字符。

举例:
if(ispunct(s[i])) printf("^");
isspace
功能:判断字符c是否为空白符
说明:当c为空白符时,返回非零值,否则返回零。

空白符指空格、水平制表、垂直制表、换页、回车和换行符。

举例:
if(isspace(s[i])) putchar('.');
isupper
功能:判断字符c是否为大写英文字母
说明:当c为大写英文字母(A-Z)时,返回非零值,否则返回零。

举例:
printf("%c:%s\n",c,isupper(c)?"yes":"no");
isxdigit
功能:判断字符c是否为十六进制数字
说明:当c为A-F,a-f或0-9之间的十六进制数字时,返回非零值,否则返回零。

举例:
printf("%c:%s\n",c,isxdigit(c)?"yes":"no");
功能:将字符c转换为ascii码
说明:toascii函数将字符c的高位清零,仅保留低七位。

返回转换后的数值。

举例:
putchar(toascii(s[i]));
tolower
功能:将字符c转换为小写英文字母
说明:如果c为大写英文字母,则返回对应的小写字母;否则返回原来的值。

举例:
putchar(tolower(s[i]));
toupper
功能:将字符c转换为大写英文字母
说明:如果c为小写英文字母,则返回对应的大写字母;否则返回原来的值。

举例:
putchar(toupper(s[i]));
math.h 数学函数
abs
功能:求整数x的绝对值
说明:计算|x|, 当x不为负时返回x,否则返回-x
举例:
printf("|%d|=%d\n",x,abs(x));
acos
功能:求x(弧度表示)的反余弦值
说明:x的定义域为[-1.0,1.0],值域为[0,π]。

举例:
printf("acos(%.2f)=%.4f",x,acos(x));
asin
功能:求x(弧度表示)的反正弦值
说明:x的定义域为[-1.0,1.0],值域为[-π/2,+π/2]。

printf("asin(%.2f)=%.4f",x,asin(x));
atan
功能:求x(弧度表示)的反正切值
说明:值域为(-π/2,+π/2)。

举例:
printf("atan(%.2f)=%.4f",x,atan(x));
atan2
功能:求y/x(弧度表示)的反正切值
说明:值域为(-π/2,+π/2)。

举例:
printf("atan2(%.3f,%.2f)=%.4f",y,x,atan2(y,x));
ceil
功能:求不小于x的最小整数
说明:返回x的上限,如74.12的上限为75,-74.12的上限为-74。

返回值为float类型。

举例:
printf("ceil(%.2f)=%.0f\n",x,ceil(x));
cos
原型:extern float cos(float x);
功能:求x(弧度表示)的余弦值
说明:返回值在[-1.0,1.0]之间。

举例:
printf("cos(%.4f)=%.4f\n",x,cos(x));
cosh
原型:extern float cosh(float x);
功能:求x的双曲余弦值
说明:cosh(x)=(e^x+e^(-x))/2
举例:
printf("cosh(%.4f)=%.4f\n",x,cosh(x));
exp
原型:extern float exp(float x);
功能:求e的x次幂
说明:e=2.718281828...
举例:
printf("e=%f\n",exp(1.0));
fabs
原型:extern float fabs(float x);
功能:求浮点数x的绝对值
说明:计算|x|, 当x不为负时返回x,否则返回-x
举例:
printf("|%f|=%f\n",x,fabs(x));
floor
原型:extern float floor(float x);
功能:求不大于x的最大整数
说明:返回x的下限,如74.12的下限为74,-74.12的下限为-75。

返回值为float类型。

举例:
printf("floor(%.2f)=%.0f\n",x,floor(x));
fmod
原型:extern float fmod(float x, float y);
功能:计算x/y的余数
说明:返回x-n*y,符号同y。

n=[x/y](向离开零的方向取整)
举例:
printf("74.12/6.4: %f\n",fmod(x,y));
frexp
原型:extern float frexp(float x, int *exp);
功能:把浮点数x分解成尾数和指数。

说明:x=m*2^exp,m为规格化小数。

返回尾数m,并将指数存入exp中。

举例:
x=frexp(64.0,&exp);
printf("64=%.2f*2^%d",x,exp);
hypot
原型:extern float hypot(float x, float y);
功能:对于给定的直角三角形的两个直角边,求其斜边的长度。

说明:返回斜边值。

举例:
printf("3^2+4^2=%.0f^2\n",hypot(3.,4.));
ldexp
原型:extern float ldexp(float x, int exp);
功能:装载浮点数。

说明:返回x*2^exp的值。

举例:
x=ldexp(1.0,6); // 1.0*2^6
printf("2^6=%.2f",x);
log
原型:extern float log(float x);
功能:计算x的自然对数。

说明:x的值应大于零。

举例:
printf("ln(e)=%f\n", log(M_E)); // M_E is 2.71828..., defined in math.h log10
原型:extern float log10(float x);
功能:计算x的常用对数。

说明:x的值应大于零。

举例:
printf("lg(5)=%f\n", log10(5.0));
modf
原型:extern float modf(float num, float *i);
功能:将浮点数num分解成整数部分和小数部分。

说明:返回小数部分,将整数部分存入*i所指内存中。

举例:
x=modf(-74.12,&i);
printf("-74.12=%.0f+(%.2f)",i,x);
pow
原型:extern float pow(float x, float y);
功能:计算x的y次幂。

说明:x应大于零,返回幂指数的结果。

举例:
printf("4^5=%f",pow(4.,5.));
pow10
原型:extern float pow10(float x);
功能:计算10的x次幂。

说明:相当于pow(10.0,x)。

举例:
printf("10^3.2=%f\n",pow10(3.2));
sin
原型:extern float sin(float x);
功能:计算x(弧度表示)的正弦值。

说明:x的值域为[-1.0,1.0]。

举例:
x=M_PI/2; // M_PI=PI=3.14159265..., defined in math.h
printf("sin(PI/2)=%f",sin(x));
sinh
原型:extern float sinh(float x);
功能:计算x(弧度表示)的双曲正弦值。

说明:sinh(x)=(e^x-e^(-x))/2。

举例:
x=PI/4.;
printf("sinh(%.4f)=%.4f\n",x,sinh(x));
sqrt
原型:extern float sqrt(float x);
功能:计算x的平方根。

说明:x应大于等于零。

举例:
printf("sqrt(2000)=%f",sqrt(2000.0));
tan
原型:extern float tan(float x);
功能:计算x(弧度表示)的正切值。

说明:返回x的正切值。

举例:
x=M_PI/4; // M_PI=PI=3.14159265..., defined in math.h
printf("tan(PI/4)=%f",tan(x));
tanh
原型:extern float tanh(float x);
功能:求x的双曲正切值
说明:tanh(x)=(e^x-e^(-x))/(e^2+e^(-x))
举例:
x=PI/4.;
printf("tanh(%.4f)=%.4f\n",x,tanh(x));
string.h 字符串函数
bcmp
原型:extern int bcmp(const void *s1, const void *s2, int n);
功能:比较字符串s1和s2的前n个字节是否相等
说明:如果s1=s2或n=0则返回零,否则返回非零值。

bcmp不检查NULL。

举例:
char *s1="Golden Global View";
char *s2="Golden global view";;
if(!bcmp(s1,s2,7))
printf("s1 equal to s2 in first 7 bytes");
else
printf("s1 not equal to s2 in first 7 bytes");
bcopy
原型:extern void bcopy(const void *src, void *dest, int n);
功能:将字符串src的前n个字节复制到dest中
说明:bcopy不检查字符串中的空字节NULL,函数没有返回值。

举例:
char *s="Golden Global View";
char d[20];
bcopy(s,d,6);
printf("s: %s\n",s);
printf("d: %s\n",d);
bzero
原型:extern void bzero(void *s, int n);
功能:置字节字符串s的前n个字节为零。

说明:bzero无返回值。

举例:
struct
{
int a;
char s[5];
float f;
} tt;
char s[20];
bzero(&tt,sizeof(tt)); // struct initialization to zero
bzero(s,20);
memccpy
原型:extern void *memccpy(void *dest, void *src, unsigned char ch, unsigned int count);
功能:由src所指内存区域复制不多于count个字节到dest所指内存区域,如果遇到字符ch则停止复制。

说明:返回指向字符ch后的第一个字符的指针,如果src前n个字节中不存在ch则返回NULL。

ch被复制。

举例:
char *s="Golden Global View";
char d[20],*p;
p=memccpy(d,s,'x',strlen(s));
memchr
原型:extern void *memchr(void *buf, char ch, unsigned count);
功能:从buf所指内存区域的前count个字节查找字符ch。

说明:当第一次遇到字符ch时停止查找。

如果成功,返回指向字符ch的指针;否则返回NULL。

举例:
char *s="Hello, Programmers!";
char *p;
p=memchr(s,'P',strlen(s));
memcmp
原型:extern int memcmp(void *buf1, void *buf2, unsigned int count);
功能:比较内存区域buf1和buf2的前count个字节。

说明:
当buf1<buf2时,返回值<0
当buf1=buf2时,返回值=0
当buf1>buf2时,返回值>0
举例:
char *s1="Hello, Programmers!";
char *s2="Hello, programmers!";
int r;
r=memcmp(s1,s2,strlen(s1));
memcpy
原型:extern void *memcpy(void *dest, void *src, unsigned int count);
功能:由src所指内存区域复制count个字节到dest所指内存区域。

说明:src和dest所指内存区域不能重叠,函数返回指向dest的指针。

举例:
char *s="Golden Global View";
char d[20];
memcpy(d,s,strlen(s));
d[strlen(s)]=0;
printf("%s",d);
memicmp
原型:extern int memicmp(void *buf1, void *buf2, unsigned int count);
功能:比较内存区域buf1和buf2的前count个字节但不区分字母的大小写。

说明:memicmp同memcmp的唯一区别是memicmp不区分大小写字母。

当buf1<buf2时,返回值<0
当buf1=buf2时,返回值=0
当buf1>buf2时,返回值>0
举例:
char *s1="Hello, Programmers!";
char *s2="Hello, programmers!";
int r;
r=memicmp(s1,s2,strlen(s1));
if(!r)
printf("s1 and s2 are identical");
else
if(r<0)
printf("s1 less than s2");
else
printf("s1 greater than s2");
memmove
原型:extern void *memmove(void *dest, const void *src, unsigned int count);
功能:由src所指内存区域复制count个字节到dest所指内存区域。

说明:src和dest所指内存区域可以重叠,但复制后src内容会被更改。

函数返回指向dest的指针。

举例:
char *s="Golden Global View";
memmove(s,s+7,strlen(s)-7);
s[strlen(s)-7]=0;
printf("%s",s);
memset
原型:extern void *memset(void *buffer, int c, int count);
功能:把buffer所指内存区域的前count个字节设置成字符c。

说明:返回指向buffer的指针。

举例:
char *s="Golden Global View";
memset(s,'G',6);
printf("%s",s);
movmem
原型:extern void movmem(void *src, void *dest, unsigned int count);
功能:由src所指内存区域复制count个字节到dest所指内存区域。

说明:src和dest所指内存区域可以重叠,但复制后src内容会被更改。

函数返回指向dest的指针。

举例:
char *s="Golden Global View";
movmem(s,s+7,strlen(s)-7);
s[strlen(s)-7]=0;
printf("%s",s);
setmem
原型:extern void setmem(void *buf, unsigned int count, char ch);
功能:把buf所指内存区域前count个字节设置成字符ch。

说明:返回指向buf的指针。

举例:
char *s="Golden Global View";
setmem(s,6,'G');
printf("%s",s);
stpcpy
原型:extern char *stpcpy(char *dest,char *src);
功能:把src所指由NULL结束的字符串复制到dest所指的数组中。

说明:src和dest所指内存区域不可以重叠且dest必须有足够的空间来容纳src的字符串。

返回指向dest结尾处字符(NULL)的指针。

举例:
char *s="Golden Global View";
char d[20];
stpcpy(d,s);
printf("%s",d);
strcat
原型:extern char *strcat(char *dest,char *src);
功能:把src所指字符串添加到dest结尾处(覆盖dest结尾处的'\0')并添加'\0'。

说明:src和dest所指内存区域不可以重叠且dest必须有足够的空间来容纳src的字符串。

返回指向dest的指针。

举例:
char d[20]="Golden Global";
char *s=" View";
strcat(d,s);
printf("%s",d);
strchr
原型:extern char *strchr(char *s,char c);
功能:查找字符串s中首次出现字符c的位置
说明:返回首次出现c的位置的指针,如果s中不存在c则返回NULL。

举例:
char *s="Golden Global View";
char *p;
strchr(s,'V');
if(p)
printf("%s",p);
else
printf("Not Found!");
strcmp
原型:extern int strcmp(char *s1,char * s2);
功能:比较字符串s1和s2。

说明:
当s1<s2时,返回值<0
当s1=s2时,返回值=0
当s1>s2时,返回值>0
举例:
char *s1="Hello, Programmers!";
char *s2="Hello, programmers!";
int r;
r=strcmp(s1,s2);
if(!r)
printf("s1 and s2 are identical");
else
if(r<0)
printf("s1 less than s2");
else
printf("s1 greater than s2");
stricmp,strcmpi
原型:extern int stricmp(char *s1,char * s2);
功能:比较字符串s1和s2,但不区分字母的大小写。

说明:strcmpi是到stricmp的宏定义,实际未提供此函数。

当s1<s2时,返回值<0
当s1=s2时,返回值=0
当s1>s2时,返回值>0
举例:
char *s1="Hello, Programmers!";
char *s2="Hello, programmers!";
int r;
r=stricmp(s1,s2);
if(!r)
printf("s1 and s2 are identical");
else
if(r<0)
printf("s1 less than s2");
else
printf("s1 greater than s2");
strcpy
原型:extern char *strcpy(char *dest,char *src);
功能:把src所指由NULL结束的字符串复制到dest所指的数组中。

说明:src和dest所指内存区域不可以重叠且dest必须有足够的空间来容纳src的字符串。

返回指向dest的指针。

举例:
char *s="Golden Global View";
char d[20];
strcpy(d,s);
printf("%s",d);
strcspn
原型:extern int strcspn(char *s1,char *s2);
功能:在字符串s1中搜寻s2中所出现的字符。

说明:返回第一个出现的字符在s1中的下标值,亦即在s1中出现而s2中没有出现的子串的长度。

举例:
char *s="Golden Global View";
char *r="new";
int n;
n=strcspn(s,r);
printf("The first char both in s1 and s2 is: %c",s[n]);
strdup
原型:extern char *strdup(char *s);
功能:复制字符串s
说明:返回指向被复制的字符串的指针,所需空间由malloc()分配且可以由free()释放。

举例:
char *s="Golden Global View";
char *d;
d=strdup(s);
printf("%s",d);
strlen
原型:extern int strlen(char *s);
功能:计算字符串s的长度
说明:返回s的长度,不包括结束符NULL。

举例:
char *s="Golden Global View";
printf("%s has %d chars",s,strlen(s));
strlwr
原型:extern char *strlwr(char *s);
功能:将字符串s转换为小写形式
说明:只转换s中出现的大写字母,不改变其它字符。

返回指向s的指针。

举例:
char *s="Copywrite 1999-2000 GGV Technologies";
printf("%s",strlwr(s));
strncat
原型:extern char *strncat(char *dest,char *src,int n);
功能:把src所指字符串的前n个字符添加到dest结尾处(覆盖dest结尾处的'\0')并添加'\0'。

说明:src和dest所指内存区域不可以重叠且dest必须有足够的空间来容纳src的字符串。

返回指向dest的指针。

举例:
char d[20]="Golden Global";
char *s=" View WinIDE Library";
strncat(d,s,5);
printf("%s",d);
strncmp
原型:extern int strcmp(char *s1,char * s2,int n);
功能:比较字符串s1和s2的前n个字符。

说明:
当s1<s2时,返回值<0
当s1=s2时,返回值=0
当s1>s2时,返回值>0
举例:
char *s1="Hello, Programmers!";
char *s2="Hello, programmers!";
int r;
r=strncmp(s1,s2,6);
if(!r)
printf("s1 and s2 are identical");
else
if(r<0)
printf("s1 less than s2");
else
printf("s1 greater than s2");
strnicmp,strncmpi
原型:extern int strnicmp(char *s1,char * s2,int n);
功能:比较字符串s1和s2的前n个字符但不区分大小写。

说明:strncmpi是到strnicmp的宏定义
当s1<s2时,返回值<0
当s1=s2时,返回值=0
当s1>s2时,返回值>0
举例:
char *s1="Hello, Programmers!";
char *s2="Hello, programmers!";
int r;
r=strnicmp(s1,s2,strlen(s1));
if(!r)
printf("s1 and s2 are identical");
else
if(r<0)
printf("s1 less than s2");
else
printf("s1 greater than s2");
strncpy
原型:extern char *strncpy(char *dest, char *src, int n);
功能:把src所指由NULL结束的字符串的前n个字节复制到dest所指的数组中。

说明:
如果src的前n个字节不含NULL字符,则结果不会以NULL字符结束。

如果src的长度小于n个字节,则以NULL填充dest直到复制完n个字节。

src和dest所指内存区域不可以重叠且dest必须有足够的空间来容纳src的字符串。

返回指向dest的指针。

举例:
char *s="Golden Global View";
char *d="Hello, GGV Programmers";
char *p=strdup(s);
strncpy(d,s,strlen(s));
printf("%s\n",d);
strpbrk
原型:extern char *strpbrk(char *s1, char *s2);
功能:在字符串s1中寻找字符串s2中任何一个字符相匹配的第一个字符的位置,空字符NULL不包括在内。

说明:返回指向s1中第一个相匹配的字符的指针,如果没有匹配字符则返回空指针NULL。

举例:
char *s1="Welcome To Beijing";
char *s2="BIT";
char *p;
p=strpbrk(s1,s2);
if(p)
printf("%s\n",p);
else
printf("Not Found!\n");
strrev
原型:extern char *strrev(char *s);
功能:把字符串s的所有字符的顺序颠倒过来(不包括空字符NULL)。

说明:返回指向颠倒顺序后的字符串指针。

举例:
char *s="Welcome To Beijing";
printf("%s\n%s",s,strrev(strdup(s)));
strset
原型:extern char *strset(char *s, char c);
功能:把字符串s中的所有字符都设置成字符c。

说明:返回指向s的指针。

举例:
char *s="Golden Global View";
strset(s,'G');
printf("%s",s);
strstr
原型:extern char *strstr(char *haystack, char *needle);
功能:从字符串haystack中寻找needle第一次出现的位置(不比较结束符NULL)。

说明:返回指向第一次出现needle位置的指针,如果没找到则返回NULL。

举例:
char *s="Golden Global View";
char *l="lob";
char *p;
p=strstr(s,l);
if(p)
printf("%s",p);
else
printf("Not Found!");
strtok
原型:extern char *strtok(char *s, char *delim);
功能:分解字符串为一组标记串。

s为要分解的字符串,delim为分隔符字符串。

说明:首次调用时,s必须指向要分解的字符串,随后调用要把s设成NULL。

strtok在s中查找包含在delim中的字符并用NULL('\0')来替换,直到找遍整个字符串。

返回指向下一个标记串。

当没有标记串时则返回空字符NULL。

举例:
char *s="Golden Global View";
char *d=" ";
char *p;
p=strtok(s,d);
while(p)
{
printf("%s\n",s);
strtok(NULL,d);
}
strupr
原型:extern char *strupr(char *s);
功能:将字符串s转换为大写形式
说明:只转换s中出现的小写字母,不改变其它字符。

返回指向s的指针。

举例:
char *s="Copywrite 1999-2000 GGV Technologies";
printf("%s",strupr(s));
stdio.h 输入输出函数getchar,getch
原型:extern int getchar(void);
功能:读键
说明:从键盘上读取一个键,并返回该键的键值
getch是到getchar的宏定义
举例:
int c;
printf("Press key...");
while((c=getchar())!='Q')
{
clrscr();
printf("key: %c\nvalue: %x",c,c);
}
kbhit
原型:extern int kbhit(void);
功能:检测按键
说明:检测键盘是否有键按下。

如果有键按下,则返回对应键值;否则返回零。

kbhit不等待键盘按键。

无论有无按键都会立即返回。

举例:
int i=0;
while(!kbhit())
{
clrscr();
printf("%05d",i++);
}
printf("End.");
printf
原型:extern void printf(const char *format,...);
功能:格式化字符串输出
说明:format指定输出格式,后面跟要输出的变量
目前printf支持以下格式:
%c 单个字符
%d 十进制整数
%f 十进制浮点数
%o 八进制数
%s 字符串
%u 无符号十进制数
%x 十六进制数
%% 输出百分号%
一个格式说明可以带有几个修饰符,用来指定显示宽度,小数尾书及左对齐等:
- 左对齐
+ 在一个带符号数前加"+"或"-"号
0 域宽用前导零来填充,而不是用空白符
域宽是一个整数,设置了打印一个格式化字符串的最小域。

精度使用小数点后加数字表示的,给出每个转换说明符所要输出的字符个数。

注意:带修饰符的显示可能不正常
举例:
int i;
char *str="GGV";
printf("Printf Demo-%%c");
printf("--------------");
printf("%c-%c-%c-%c\n",'D','e','m','o');
printf("%2c-%2c-%2c-%2c\n",'D','e','m','o');
printf("%02c-%02c-%02c-%02c\n",'D','e','m','o');
printf("%-2c-%-2c-%-2c-%-2c\n",'D','e','m','o');
i=7412;
printf("Printf Demo-%%d");
printf("--------------");
printf("%d\n",i);
printf("%14d",i);
printf("%+10d\n",i); // output format not correct(bug)
printf("%-10d\n",i);
printf("Printf - d,o,x");
printf("--------------");
printf("%d\n",i);
printf("%o\n",i); // %o and %x not implemented
printf("%x\n",i);
printf("Printf Demo-%%s");
printf("--------------");
printf(" %s\n","Demo End");
printf(" %s\n","Thanx");
printf(" %s\n %s","Golden","Global View");
putchar
原型:extern void putchar(char c);
功能:在屏幕上显示字符c
说明:字符输出在屏幕的当前位置。

可用move或gotoxy改变光标位置。

举例:
int i,j,k;
for(i=1;i<6;i++)
{
k=i>3?(6-i):i;
move(i,CPR/2-k);
for(j=1;j<k*2;j++) putchar('*');
}
gotoxy(10,10); // Hide Cursor
stdlib.h 标准库函数exit
原型:extern void exit(int retval);
功能:结束程序
说明:返回值将被忽略
itoa
原型:extern char *itoa(int i);
功能:把整数i转换成字符串
说明:返回指向转换后的字符串的指针
举例:
int i=7412;
printf("%d",i);
printf("%s",itoa(i));
alloc.h内存管理函数
calloc
原型:extern void *calloc(int num_elems, int elem_size);
功能:为具有num_elems个长度为elem_size元素的数组分配内存
说明:如果分配成功则返回指向被分配内存的指针,否则返回空指针NULL。

当内存不再使用时,应使用free()函数将内存块释放。

举例:
char *p;
p=(char *)calloc(100,sizeof(char));
if(p)
printf("Memory Allocated at: %x",p);
else
printf("Not Enough Memory!\n");
free(p);
free
原型:extern void free(void *p);
功能:释放指针p所指向的的内存空间。

说明:p所指向的内存空间必须是用calloc,malloc,realloc所分配的内存。

如果p为NULL或指向不存在的内存块则不做任何操作。

举例:
char *p;
p=(char *)malloc(100);
if(p)
printf("Memory Allocated at: %x",p);
else
printf("Not Enough Memory!\n");
free(p); // release memory to reuse it
malloc
原型:extern void *malloc(unsigned int num_bytes);
功能:分配长度为num_bytes字节的内存块
说明:如果分配成功则返回指向被分配内存的指针,否则返回空指针NULL。

当内存不再使用时,应使用free()函数将内存块释放。

举例:
char *p;
p=(char *)malloc(100);
if(p)
printf("Memory Allocated at: %x",p);
else
printf("Not Enough Memory!\n");
free(p);
realloc
原型:extern void *realloc(void *mem_address, unsigned int newsize);
功能:改变mem_address所指内存区域的大小为newsize长度。

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

当内存不再使用时,应使用free()函数将内存块释放。

举例:
char *p;
p=(char *)malloc(100);
if(p)
printf("Memory Allocated at: %x",p);
else
printf("Not Enough Memory!\n");
p=(char *)realloc(p,256);
if(p)
printf("Memory Reallocated at: %x",p);
else
printf("Not Enough Memory!\n");
free(p);。

相关文档
最新文档