main:/n/n", argc); for(i=0; i<=argc; i++) printf("argv[%d]:%s/n", i, argv[i]); printf("/nThe environment string(s)on this system are:/n/n"); for(i=0; env[i]!=NULL; i++) printf(" env[%d]:%s/n", i, env[i]); } 假如在DOS 提示符下, 按以下方式运行EXAMPLE.EXE: C:/example first_argument "argument with blanks" 3 4 "last but one" stop! 注重: 可以用双引号括起内含空格的参数, 如本例中的: " argument with blanks"和"Last but one")。 结果是这样的: The value of argc is 7 These are the 7 command-linearguments passed to main: argv[0]:C:/TURBO/EXAMPLE.EXE argv[1]:first_argument argv[2]:argument with blanks argv[3]:3 argv[4]:4 argv[5]:last but one argv[6]:stop! argv[7]:(NULL) The environment string(s) on this system are: env[0]: COMSPEC=C:/COMMAND.COM env[1]: PROMPT=$P$G /*视具体设置而定*/ env[2]: PATH=C:/DOS;C:/TC /*视具体设置而定*/
/* allocate memory for string */ /* This will generate an error when compiling */ /* with C++, use the new Operator instead. */ if ((str = malloc(10)) == NULL) { printf("Not enough memory to allocate buffer/n"); exit(1); /* terminate program if out of memory */
}
/* copy "Hello" into string */ strcpy(str, "Hello");
/* display string */ printf("String is %s/n", str);
strcpy(str, "This is a string"); ptr = memchr(str, 'r', strlen(str)); if (ptr) printf("The character 'r' is at position: %d/n", ptr - str); else printf("The character was not found/n"); return 0; }
#include <stdio.h> #include <string.h> int main(void) { char src[] = "******************************"; char dest[] = "abcdefghijlkmnopqrstuvwxyz0123456709"; char *ptr; printf("destination before memcpy: %s/n", dest); ptr = memcpy(dest, src, strlen(src)); if (ptr) printf("destination after memcpy: %s/n", dest); else printf("memcpy failed/n"); return 0; }
函数名: memicmp 功 能: 比较两个串s1和s2的前n个字节, 忽略大小写
用 法: int memicmp(void *s1, void *s2, unsigned n); 程序例:
#include <stdio.h> #include <string.h>
int main(void) { char *buf1 = "ABCDE123"; char *buf2 = "abcde456"; int stat; stat = memicmp(buf1, buf2, 5); printf("The strings to position 5 are "); if (stat) printf("not "); printf("the same/n"); return 0; }
int main(void) { double fraction, integer; double number = 100000.567;
fraction = modf(number, &integer); printf("The whole and fractional parts of %lf are %lf and %lf/n", number, integer, fraction); return 0; }
函数名: movedata 功 能: 拷贝字节 用 法: void movedata(int segsrc, int offsrc, int segdest, int offdest, unsigned numbytes); 程序例:
#include <mem.h>
#define MONO_BASE 0xB000
/* saves the contents of the monoChrome screen in buffer */ void save_mono_screen(char near *buffer) { movedata(MONO_BASE, 0, _DS, (unsigned)buffer, 80*25*2); }
int main(void) { char buf[80*25*2]; save_mono_screen(buf); }
函数名: moverel 功 能: 将当前位置(CP)移动一相对距离 用 法: void far moverel(int dx, int dy); 程序例:
int main(void) { /* request auto detection */ int gdriver = DETECT, gmode, errorcode; char msg[80];
/* initialize graphics and local variables */ initgraph(&gdriver, &gmode, "");
/* read result of initialization */ errorcode = graphresult();
if (errorcode != grOk) /* an error occurred */ { printf("Graphics error: %s/n", 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, " (%d, %d)", getx(), gety()); outtextxy(20, 30, msg);
/* move to a point a relative distance */ /* away from the current 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 left, int top, int right, int bottom, int newleft, int newtop); 程序例: #include <conio.h> #include <string.h>
int 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); 程序例:
int main(void) { /* request auto detection */ int gdriver = DETECT, gmode, errorcode; char msg[80];
/* initialize graphics and local variables */ initgraph(&gdriver, &gmode, "");
/* read result of initialization */ errorcode = graphresult(); if (errorcode != grOk) /* an error occurred */ { printf("Graphics error: %s/n", 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, " (%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);
True story: 7 Hz is the resonant frequency of a chicken's skull cavity. This was determined empirically in Australia, where a new factory generating 7-Hz tones was located too close to a chicken ranch: When the factory started up, all the chickens died.
Your PC may not be able to emit a 7-Hz tone. */
int main(void) { sound(7); delay(10000); nosound();