1、c语言m开头函数大全新手必看 1C语言函数大全(m开头)main()主函数每一C程序都必须有一main()函数, 可以根据自己的爱好把它放在程序的某个地方。有些程序员把它放在最前面, 而另一些程序员把它放在最后面, 无论放在哪个地方, 以下几点说明都是适合的。1.main()参数在Turbo C2.0启动过程中, 传递main()函数三个参数: argc, argv和env。* argc: 整数, 为传给main()的命令行参数个数。* argv: 字符串数组。在DOS 3.X 版本中, argv0 为程序运行的全路径名; 对DOS 3.0以下的版本, argv0为空串() 。argv1 为在
2、DOS命令行中执行程序名后的第一个字符串;argv2 为执行程序名后的第二个字符串;.argvargc为NULL。*env: 安符串数组。env 的每一个元素都包含ENVVAR=value形式的字符串。其中ENVVAR为环境变量如PATH或87。value 为ENVVAR的对应值如C:DOS, C:TURBOC(对于PATH) 或YES(对于87)。Turbo C2.0启动时总是把这三个参数传递给main()函数, 可以在用户程序中说明(或不说明)它们, 如果说明了部分(或全部)参数, 它们就成为main()子程序的局部变量。请注意: 一旦想说明这些参数, 则必须按argc, argv, en
3、v 的顺序, 如以下的例子:main()main(int argc)main(int argc, char *argv)main(int argc, char *argv, char *env)其中第二种情况是合法的, 但不常见, 因为在程序中很少有只用argc, 而不用argv的情况。以下提供一样例程序EXAMPLE.EXE, 演示如何在main()函数中使用三个参数:/*program name EXAMPLE.EXE*/#include#includemain(int argc, char *argv, char *env)int i;printf(These are the %d co
4、mmand- line arguments passed tomain:nn, argc);for(i=0; i=argc; i+)printf(argv%d:%sn, i, argvi);printf(nThe environment string(s)on this system are:nn);for(i=0; envi!=NULL; i+)printf( env%d:%sn, i, envi);如果在DOS 提示符下, 按以下方式运行EXAMPLE.EXE:C:example first_argument argument with blanks 3 4 last butone sto
5、p!注意: 可以用双引号括起内含空格的参数, 如本例中的: argumentwith blanks和Last but one)。结果是这样的:The value of argc is 7These are the 7 command-linearguments passed to main:argv0:C:TURBOEXAMPLE.EXEargv1:first_argumentargv2:argument with blanksargv3:3argv4:4argv5:last but oneargv6:stop!argv7:(NULL)The environment string(s) on
6、this system are:env0: COMSPEC=C:COMMAND.COMenv1: PROMPT=$P$G /*视具体设置而定*/env2: PATH=C:DOS;C:TC /*视具体设置而定*/应该提醒的是: 传送main()函数的命令行参数的最大长度为128 个字符 (包括参数间的空格), 这是由DOS 限制的。函数名: matherr功能: 用户可修改的数学错误处理程序用法: int matherr(struct exception *e);程序例:/* This is a user-defined matherr function that preventsany err
7、or messages from being printed.*/#includeint matherr(struct exception *a)return 1;函数名: memccpy功能: 从源source中拷贝n个字节到目标destin中用法: void *memccpy(void *destin, void *source, unsigned char ch,unsigned n);程序例:#include#includeint main(void)char *src = This is the source string;char dest50;char *ptr;ptr = me
8、mccpy(dest, src, c, strlen(src);if (ptr)*ptr = 0;printf(The character was found: %sn, dest);elseprintf(The character wasnt foundn);return 0;函数名: malloc功能: 内存分配函数用法: void *malloc(unsigned size);程序例:#include#include#include#includeint main(void)char *str;/* allocate memory for string */* This will gen
9、erate an error when compiling */* with C+, use the new operator instead.*/if (str = malloc(10) = NULL)printf(Not enough memory to allocate buffern);exit(1); /* terminate program if out of memory */* copy Hello into string */strcpy(str, Hello);/* display string */printf(String is %sn, str);/* free me
10、mory */free(str);return 0;函数名: memchr功能: 在数组的前n个字节中搜索字符用法: void *memchr(void *s, char ch, unsigned n);程序例:#include#includeint main(void)char str17;char *ptr;strcpy(str, This is a string);ptr = memchr(str, r, strlen(str);if (ptr)printf(The character r is at position: %dn, ptr - str);elseprintf(The ch
11、aracter was not foundn);return 0;函数名: memcpy功能: 从源source中拷贝n个字节到目标destin中用法: void *memcpy(void *destin, void *source, unsigned n);程序例:#include#includeint main(void)char src = *;char dest = abcdefghijlkmnopqrstuvwxyz0123456709;char *ptr;printf(destination before memcpy: %sn, dest);ptr = memcpy(dest,
12、src, strlen(src);if (ptr)printf(destination after memcpy: %sn, dest);elseprintf(memcpy failedn);return 0;函数名: memicmp功能: 比较两个串s1和s2的前n个字节, 忽略大小写用法: int memicmp(void *s1, void *s2, unsigned n);程序例:#include#includeint main(void)char *buf1 = ABCDE123;char *buf2 = abcde456;int stat;stat = memicmp(buf1,
13、buf2, 5);printf(The strings to position 5 are );if (stat)printf(not );printf(the samen);return 0;函数名: memmove功能: 移动一块字节用法: void *memmove(void *destin, void *source, unsigned n);程序例:#include#includeint main(void)char *dest = abcdefghijklmnopqrstuvwxyz0123456789;char *src = *;printf(destination prior
14、to memmove: %sn, dest);memmove(dest, src, 26);printf(destination after memmove: %sn, dest);return 0;函数名: memset功能: 设置s中的所有字节为ch, s数组的大小由n给定用法: void *memset(void *s, char ch, unsigned n);程序例:#include#include#includeint main(void)char buffer = Hello worldn;printf(Buffer before memset: %sn, buffer);mem
15、set(buffer, *, strlen(buffer) - 1);printf(Buffer after memset: %sn, buffer);return 0;函数名: mkdir功能: 建立一个目录用法: int mkdir(char *pathname);程序例:#include#include#include#includeint main(void)int status;clrscr();status = mkdir(asdfjklm);(!status) ? (printf(Directory createdn) :(printf(Unable to create dire
16、ctoryn);getch();system(dir);getch();status = rmdir(asdfjklm);(!status) ? (printf(Directory deletedn) :(perror(Unable to delete directory);return 0;函数名: mktemp功能: 建立唯一的文件名用法: char *mktemp(char *template);程序例:#include#includeint main(void)/* fname defines the template for thetemporary file.*/char *fna
17、me = TXXXXXX, *ptr;ptr = mktemp(fname);printf(%sn,ptr);return 0;函数名: MK_FP功能: 设置一个远指针用法: void far *MK_FP(unsigned seg, unsigned off);程序例:#include#includeint main(void)int gd, gm, i;unsigned int far *screen;detectgraph(&gd, &gm);if (gd = HERCMONO)screen = MK_FP(0xB000, 0);elsescreen = MK_FP(0xB800, 0
18、);for (i=0; i26; i+)screeni = 0x0700 + (a + i);return 0;291911320函数名: modf功能: 把数分为指数和尾数用法: double modf(double value, double *iptr);程序例:#include#includeint main(void)double fraction, integer;double number = 100000.567;fraction = modf(number, &integer);printf(The whole and fractional parts of %lf are
19、%lf and %lfn,number, integer, fraction);return 0;函数名: movedata功能: 拷贝字节用法: void movedata(int segsrc, int offsrc, int segdest,int offdest, unsigned numbytes);程序例:#include#define MONO_BASE 0xB000/* saves the contents of the monochrome screen in buffer */void save_mono_screen(char near *buffer)movedata(
20、MONO_BASE, 0, _DS, (unsigned)buffer, 80*25*2);int main(void)char buf80*25*2;save_mono_screen(buf);函数名: moverel功能: 将当前位置(CP)移动一相对距离用法: void far moverel(int dx, int dy);程序例:#include#include#include#includeint main(void)/* request auto detection */int gdriver = DETECT, gmode, errorcode;char msg80;/* in
21、itialize graphics and local variables */initgraph(&gdriver, &gmode, );/* read result of initialization */errorcode = graphresult();if (errorcode != grOk) /* an error occurred */printf(Graphics error: %sn, grapherrormsg(errorcode);printf(Press any key to halt:);getch();exit(1); /* terminate with an e
22、rror code */* move the C.P.to location (20, 30) */moveto(20, 30);/* plot a pixel at the C.P.*/putpixel(getx(), gety(), getmaxcolor();/* create and output a message at (20, 30) */sprintf(msg, (%d, %d), getx(), gety();outtextxy(20, 30, msg);/* move to a point a relative distance */* away from the curr
23、ent value of C.P.*/moverel(100, 100);/* plot a pixel at the C.P.*/putpixel(getx(), gety(), getmaxcolor();/* create and output a message at C.P.*/sprintf(msg, (%d, %d), getx(), gety();outtext(msg);/* clean up */getch();closegraph();return 0;函数名: movetext功能: 将屏幕文本从一个矩形区域拷贝到另一个矩形区域用法: int movetext(int
24、left, int top, int right, int bottom,int newleft, int newtop);程序例:#include#includeint main(void)char *str = This is a test string;clrscr();cputs(str);getch();movetext(1, 1, strlen(str), 2, 10, 10);getch();return 0;函数名: moveto功能: 将CP移到(x, y)用法: void far moveto(int x, int y);程序例:#include#include#inclu
25、de#includeint main(void)/* request auto detection */int gdriver = DETECT, gmode, errorcode;char msg80;/* initialize graphics and local variables */initgraph(&gdriver, &gmode, );/* read result of initialization */errorcode = graphresult();if (errorcode != grOk) /* an error occurred */printf(Graphics
26、error: %sn, grapherrormsg(errorcode);printf(Press any key to halt:);getch();exit(1); /* terminate with an error code */* move the C.P.to location (20, 30) */moveto(20, 30);/* plot a pixel at the C.P.*/putpixel(getx(), gety(), getmaxcolor();/* create and output a message at (20, 30) */sprintf(msg, (%
27、d, %d), getx(), gety();outtextxy(20, 30, msg);/* move to (100, 100) */moveto(100, 100);/* plot a pixel at the C.P.*/putpixel(getx(), gety(), getmaxcolor();/* create and output a message at C.P.*/sprintf(msg, (%d, %d), getx(), gety();outtext(msg);/* clean up */getch();closegraph();return 0;函数名: movem
28、em功能: 移动一块字节用法: void movemem(void *source, void *destin, unsigned len);程序例:#include#include#include#includeint main(void)char *source = Borland International;char *destination;int length;length = strlen(source);destination = malloc(length + 1);movmem(source,destination,length);printf(%sn,destination
29、);return 0;函数名: normvideo功能: 选择正常亮度字符用法: void normvideo(void);程序例:#includeint main(void)normvideo();cprintf(NORMAL Intensity Textrn);return 0;函数名: nosound功能: 关闭PC扬声器用法: void nosound(void);程序例:/* Emits a 7-Hz tone for 10 seconds.True story: 7 Hz is the resonant frequency of a chickens skull cavity.This was determined empiric
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1