易码技术论坛

 找回密码
 加入易码
搜索
12
返回列表 发新帖
楼主: yoyohenry

[教程] C语言库函数[转]

[复制链接]
 楼主| 发表于 2006-5-21 11:36:00 | 显示全部楼层
C语言库函数(S类字母) - 1


函数名: sbrk  
功  能: 改变数据段空间位置  
用  法: char *sbrk(int incr);  
程序例:  

#include <stdio.h>  
#include <alloc.h>  

int main(void)  
{  
   printf("Changing allocation with sbrk()\n");  
   printf("Before sbrk() call: %lu bytes free\n",  
   (unsigned long) coreleft());  
   sbrk(1000);  
   printf(" After sbrk() call: %lu bytes free\n",  
   (unsigned long) coreleft());  
   return 0;  
}  
   
   

函数名: scanf  
功  能: 执行格式化输入  
用  法: int scanf(char *format[,argument,...]);  
程序例:  

#include <stdio.h>  
#include <conio.h>  

int main(void)  
{  
   char label[20];  
   char name[20];  
   int entries = 0;  
   int loop, age;  
   double salary;  

   struct Entry_struct  
   {  
      char  name[20];  
      int   age;  
      float salary;  
   } entry[20];  

/* Input a label as a string of characters restricting to 20 characters */  
   printf("\n\nPlease enter a label for the chart: ");  
   scanf("%20s", label);  
   fflush(stdin);  /* flush the input stream in case of bad input */  

/* Input number of entries as an integer */  
   printf("How many entries will there be? (less than 20) ");  
   scanf("%d", &entries);  
   fflush(stdin);   /* flush the input stream in case of bad input */  

/* input a name restricting input to only letters upper or lower case */  
   for (loop=0;loop<entries;++loop)  
   {  
      printf("Entry %d\n", loop);  
      printf("  Name   : ");  
      scanf("%[A-Za-z]", entry[loop].name);  
      fflush(stdin);  /* flush the input stream in case of bad input */  

/* input an age as an integer */  
      printf("  Age    : ");  
      scanf("%d", &entry[loop].age);  
      fflush(stdin);  /* flush the input stream in case of bad input */  

/* input a salary as a float */  
      printf("  Salary : ");  
      scanf("%f", &entry[loop].salary);  
      fflush(stdin); /* flush the input stream in case of bad input */  
   }  

/* Input a name, age and salary as a string, integer, and double */  
   printf("\nPlease enter your name, age and salary\n");  
   scanf("%20s %d %lf", name, &age, &salary);  
   

/* Print out the data that was input */  
   printf("\n\nTable %s\n",label);  
   printf("Compiled by %s  age %d  $%15.2lf\n", name, age, salary);  
   printf("-----------------------------------------------------\n");  
   for (loop=0;loop<entries;++loop)  
      printf("%4d | %-20s | %5d | %15.2lf\n",  
         loop + 1,  
  entry[loop].name,  
  entry[loop].age,  
         entry[loop].salary);  
   printf("-----------------------------------------------------\n");  
   return 0;  
}  
   
   

函数名: searchpath  
功  能: 搜索DOS路径  
用  法: char *searchpath(char *filename);  
程序例:  

#include <stdio.h>  
#include <dir.h>  

int main(void)  
{  
   char *p;  

   /* Looks for TLINK and returns a pointer  
      to the path  */  
   p = searchpath("TLINK.EXE");  
   printf("Search for TLINK.EXE : %s\n", p);  

   /* Looks for non-existent file  */  
   p = searchpath("NOTEXIST.FIL");  
   printf("Search for NOTEXIST.FIL : %s\n", p);  

   return 0;  
}  
   
   

函数名: sector  
功  能: 画并填充椭圆扇区  
用  法: void far sector(int x, int y, int stangle, int endangle);  
程序例:  

#include <graphics.h>  
#include <stdlib.h>  
#include <stdio.h>  
#include <conio.h>  

int main(void)  
{  
   /* request auto detection */  
   int gdriver = DETECT, gmode, errorcode;  
   int midx, midy, i;  
   int stangle = 45, endangle = 135;  
   int xrad = 100, yrad = 50;  

   /* 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 */  
   }  

   midx = getmaxx() / 2;  
   midy = getmaxy() / 2;  

   /* loop through the fill patterns */  
   for (i=EMPTY_FILL; i<USER_FILL; i++)  
   {  
      /* set the fill style */  
      setfillstyle(i, getmaxcolor());  

      /* draw the sector slice */  
      sector(midx, midy, stangle, endangle, xrad, yrad);  

      getch();  
   }  

   /* clean up */  
   closegraph();  
   return 0;  
}  
   

函数名: segread  
功  能: 读段寄存器值  
用  法: void segread(struct SREGS *segtbl);  
程序例:  

#include <stdio.h>  
#include <dos.h>  

int main(void)  
{  
   struct SREGS segs;  

   segread(&segs);  
   printf("Current segment register settings\n\n");  
   printf("CS: %X   DS: %X\n", segs.cs, segs.ds);  
   printf("ES: %X   SS: %X\n", segs.es, segs.ss);  

   return 0;  
}  
   
   

函数名: setactivepage  
功  能: 设置图形输出活动页  
用  法: void far setactivepage(int pagenum);  
程序例:  

#include <graphics.h>  
#include <stdlib.h>  
#include <stdio.h>  
#include <conio.h>  

int main(void)  
{  
   /* select a driver and mode that supports */  
   /* multiple pages.                        */  
   int gdriver = EGA, gmode = EGAHI, errorcode;  
   int x, y, ht;  

   /* 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 */  
   }  

   x = getmaxx() / 2;  
   y = getmaxy() / 2;  
   ht = textheight("W");  

   /*  select the off screen page for drawing */  
   setactivepage(1);  

   /* draw a line on page #1 */  
   line(0, 0, getmaxx(), getmaxy());  

   /* output a message on page #1 */  
   settextjustify(CENTER_TEXT, CENTER_TEXT);  
   outtextxy(x, y, "This is page #1:");  
   outtextxy(x, y+ht, "Press any key to halt:");  

   /* select drawing to page #0 */  
   setactivepage(0);  

   /* output a message  on page #0 */  
   outtextxy(x, y, "This is page #0.");  
   outtextxy(x, y+ht, "Press any key to view page #1:");  
   getch();  

   /* select page #1 as the visible page */  
   setvisualpage(1);  

   /* clean up */  
   getch();  
   closegraph();  
   return 0;  
}  
   
   

函数名: setallpallette  
功  能: 按指定方式改变所有的调色板颜色  
用  法: void far setallpallette(struct palette, far *pallette);  
程序例:  

#include <graphics.h>  
#include <stdlib.h>  
#include <stdio.h>  
#include <conio.h>  

int main(void)  
{  
   /* request auto detection */  
   int gdriver = DETECT, gmode, errorcode;  
   struct palettetype pal;  
   int color, maxcolor, ht;  
   int y = 10;  
   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 */  
   }  

   maxcolor = getmaxcolor();  
   ht = 2 * textheight("W");  

   /* grab a copy of the palette */  
   getpalette(&pal);  

   /* display the default palette colors */  
   for (color=1; color<=maxcolor; color++)  
   {  
      setcolor(color);  
      sprintf(msg, "Color: %d", color);  
      outtextxy(1, y, msg);  
      y += ht;  
   }  

   /* wait for a key */  
   getch();  

   /* black out the colors one by one */  
   for (color=1; color<=maxcolor; color++)  
   {  
      setpalette(color, BLACK);  
      getch();  
   }  

   /* restore the palette colors */  
   setallpalette(&pal);  

   /* clean up */  
   getch();  
   closegraph();  
   return 0;  
}  
   
   

函数名: setaspectratio  
功  能: 设置图形纵横比  
用  法: void far setaspectratio(int xasp, int yasp);  
程序例:  

#include <graphics.h>  
#include <stdlib.h>  
#include <stdio.h>  
#include <conio.h>  

int main(void)  
{  
   /* request auto detection */  
   int gdriver = DETECT, gmode, errorcode;  
   int xasp, yasp, midx, midy;  

   /* 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 */  
   }  

   midx = getmaxx() / 2;  
   midy = getmaxy() / 2;  
   setcolor(getmaxcolor());  

   /* get current aspect ratio settings */  
   getaspectratio(&xasp, &yasp);  

   /* draw normal circle */  
   circle(midx, midy, 100);  
   getch();  

   /* claer the screen */  
   cleardevice();  

   /* adjust the aspect for a wide circle */  
   setaspectratio(xasp/2, yasp);  
   circle(midx, midy, 100);  
   getch();  

   /* adjust the aspect for a narrow circle */  
   cleardevice();  
   setaspectratio(xasp, yasp/2);  
   circle(midx, midy, 100);  

   /* clean up */  
   getch();  
   closegraph();  
   return 0;  
}  
   
   

函数名: setbkcolor  
功  能: 用调色板设置当前背景颜色  
用  法: void far setbkcolor(int color);  
程序例:  

#include <graphics.h>  
#include <stdlib.h>  
#include <stdio.h>  
#include <conio.h>  

int main(void)  
{  
   /* select a driver and mode that supports */  
   /* multiple background colors.            */  
   int gdriver = EGA, gmode = EGAHI, errorcode;  
   int bkcol, maxcolor, x, y;  
   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 */  
   }  

   /* maximum color index supported */  
   maxcolor = getmaxcolor();  

   /* for centering text messages */  
   settextjustify(CENTER_TEXT, CENTER_TEXT);  
   x = getmaxx() / 2;  
   y = getmaxy() / 2;  

   /* loop through the available colors */  
   for (bkcol=0; bkcol<=maxcolor; bkcol++)  
   {  
      /* clear the screen */  
      cleardevice();  

      /* select a new background color */  
      setbkcolor(bkcol);  

      /* output a messsage */  
      if (bkcol == WHITE)  
  setcolor(EGA_BLUE);  
      sprintf(msg, "Background color: %d", bkcol);  
      outtextxy(x, y, msg);  
      getch();  
   }  

   /* clean up */  
   closegraph();  
   return 0;  
}
 楼主| 发表于 2006-5-21 11:37:00 | 显示全部楼层
C语言库函数(S类字母) - 2

函数名: setjmp  
功  能: 非局部转移  
用  法: int setjmp(jmp_buf env);  
程序例:  

#include <stdio.h>  
#include <process.h>  
#include <setjmp.h>  

void subroutine(void);  

jmp_buf jumper;  

int main(void)  
{  
   int value;  

   value = setjmp(jumper);  
   if (value != 0)  
   {  
      printf("Longjmp with value %d\n", value);  
      exit(value);  
   }  
   printf("About to call subroutine ... \n");  
   subroutine();  
   return 0;  
}  

void subroutine(void)  
{  
   longjmp(jumper,1);  
}  
   
   

函数名: setlinestyle  
功  能: 设置当前画线宽度和类型  
用  法: void far setlinestyle(int linestype, unsigned upattern);  
程序例:  

#include <graphics.h>  
#include <stdlib.h>  
#include <string.h>  
#include <stdio.h>  
#include <conio.h>  

/* the names of the line styles supported */  
char *lname[] = {  
   "SOLID_LINE",  
   "DOTTED_LINE",  
   "CENTER_LINE",  
   "DASHED_LINE",  
   "USERBIT_LINE"  
   };  

int main(void)  
{  
   /* request auto detection */  
   int gdriver = DETECT, gmode, errorcode;  

   int style, midx, midy, userpat;  
   char stylestr[40];  

   /* 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 */  
   }  

   midx = getmaxx() / 2;  
   midy = getmaxy() / 2;  

   /* a user defined line pattern */  
   /* binary: "0000000000000001"  */  
   userpat = 1;  

   for (style=SOLID_LINE; style<=USERBIT_LINE; style++)  
   {  
      /* select the line style */  
      setlinestyle(style, userpat, 1);  

      /* convert style into a string */  
      strcpy(stylestr, lname[style]);  

      /* draw a line */  
      line(0, 0, midx-10, midy);  

      /* draw a rectangle */  
      rectangle(0, 0, getmaxx(), getmaxy());  

      /* output a message */  
      outtextxy(midx, midy, stylestr);  

      /* wait for a key */  
      getch();  
      cleardevice();  
   }  

   /* clean up */  
   closegraph();  
   return 0;  
}  
   
   
   

函数名: setmem  
功  能: 存值到存储区  
用  法: void setmem(void *addr, int len, char value);  
程序例:  

#include <stdio.h>  
#include <alloc.h>  
#include <mem.h>  

int main(void)  
{  
   char *dest;  

   dest = calloc(21, sizeof(char));  
   setmem(dest, 20, 'c');  
   printf("%s\n", dest);  

   return 0;  
}  
   
   
   

函数名: setmode  
功  能: 设置打开文件方式  
用  法: int setmode(int handle, unsigned mode);  
程序例:  

#include <stdio.h>  
#include <fcntl.h>  
#include <io.h>  

int main(void)  
{  
   int result;  

   result = setmode(fileno(stdprn), O_TEXT);  
   if (result == -1)  
      perror("Mode not available\n");  
   else  
      printf("Mode successfully switched\n");  
   return 0;  
}  
   
   
   

函数名: setpalette  
功  能: 改变调色板的颜色  
用  法: void far setpalette(int index, int actural_color);  
程序例:  

#include <graphics.h>  
#include <stdlib.h>  
#include <stdio.h>  
#include <conio.h>  

int main(void)  
{  
   /* request auto detection */  
   int gdriver = DETECT, gmode, errorcode;  
   int color, maxcolor, ht;  
   int y = 10;  
   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 */  
   }  

   maxcolor = getmaxcolor();  
   ht = 2 * textheight("W");  

   /* display the default colors */  
   for (color=1; color<=maxcolor; color++)  
   {  
      setcolor(color);  
      sprintf(msg, "Color: %d", color);  
      outtextxy(1, y, msg);  
      y += ht;  
   }  

   /* wait for a key */  
   getch();  

   /* black out the colors one by one */  
   for (color=1; color<=maxcolor; color++)  
   {  
      setpalette(color, BLACK);  
      getch();  
   }  

   /* clean up */  
   closegraph();  
   return 0;  
}  
   
   

函数名: setrgbpalette  
功  能: 定义IBM8514图形卡的颜色  
用  法: void far setrgbpalette(int colornum, int red, int green, int blue);  
程序例:  

#include <graphics.h>  
#include <stdlib.h>  
#include <stdio.h>  
#include <conio.h>  

int main(void)  
{  
   /* select a driver and mode that supports the use */  
   /* of the setrgbpalette function.                 */  
   int gdriver = VGA, gmode = VGAHI, errorcode;  
   struct palettetype pal;  
   int i, ht, y, xmax;  

   /* 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 */  
   }  

   /* grab a copy of the palette */  
   getpalette(&pal);  

   /* create gray scale */  
   for (i=0; i<pal.size; i++)  
      setrgbpalette(pal.colors, i*4, i*4, i*4);  

   /* display the gray scale */  
   ht = getmaxy() / 16;  
   xmax = getmaxx();  
   y = 0;  
   for (i=0; i<pal.size; i++)  
   {  
      setfillstyle(SOLID_FILL, i);  
      bar(0, y, xmax, y+ht);  
      y += ht;  
   }  

   /* clean up */  
   getch();  
   closegraph();  
   return 0;  
}  
   
   
   

函数名: settextjustify  
功  能: 为图形函数设置文本的对齐方式  
用  法: void far settextjustify(int horiz, int vert);  
程序例:  

#include <graphics.h>  
#include <stdlib.h>  
#include <stdio.h>  
#include <conio.h>  

/* function prototype */  
void xat(int x, int y);  

/* horizontal text justification settings */  
char *hjust[] = { "LEFT_TEXT",  
                  "CENTER_TEXT",  
                  "RIGHT_TEXT"  
                };  

/* vertical text justification settings */  
char *vjust[] = { "LEFT_TEXT",  
    "CENTER_TEXT",  
    "RIGHT_TEXT"  
                };  

int main(void)  
{  
   /* request auto detection */  
   int gdriver = DETECT, gmode, errorcode;  
   int midx, midy, hj, vj;  
   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 */  
   }  

   midx = getmaxx() / 2;  
   midy = getmaxy() / 2;  

   /* loop through text justifications */  
   for (hj=LEFT_TEXT; hj<=RIGHT_TEXT; hj++)  
      for (vj=LEFT_TEXT; vj<=RIGHT_TEXT; vj++)  
      {  
         cleardevice();  
         /* set the text justification */  
         settextjustify(hj, vj);  

         /* create a message string */  
         sprintf(msg, "%s  %s", hjust[hj], vjust[vj]);  

  /* create cross hairs on the screen */  
  xat(midx, midy);  

         /* output the message */  
         outtextxy(midx, midy, msg);  
         getch();  
      }  

   /* clean up */  
   closegraph();  
   return 0;  
}  

/* draw an "x" at (x, y) */  
void xat(int x, int y)  
{  
  line(x-4, y, x+4, y);  
  line(x, y-4, x, y+4);  
}  
   
   

函数名: settextstyle  
功  能: 为图形输出设置当前的文本属性  
用  法: void far settextstyle (int font, int direction, char size);  
程序例:  

#include <graphics.h>  
#include <stdlib.h>  
#include <stdio.h>  
#include <conio.h>  

/* the names of the text styles supported */  
char *fname[] = { "DEFAULT font",  
                  "TRIPLEX font",  
                  "SMALL font",  
                  "SANS SERIF font",  
                  "GOTHIC font"  
                };  

int main(void)  
{  
   /* request auto detection */  
   int gdriver = DETECT, gmode, errorcode;  
   int style, midx, midy;  
   int size = 1;  

   /* 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 */  
   }  

   midx = getmaxx() / 2;  
   midy = getmaxy() / 2;  

   settextjustify(CENTER_TEXT, CENTER_TEXT);  

   /* loop through the available text styles */  
   for (style=DEFAULT_FONT; style<=GOTHIC_FONT; style++)  
   {  
      cleardevice();  
      if (style == TRIPLEX_FONT)  
         size = 4;  

      /* select the text style */  
      settextstyle(style, HORIZ_DIR, size);  

      /* output a message */  
      outtextxy(midx, midy, fname[style]);  
      getch();  
   }  

   /* clean up */  
   closegraph();  
   return 0;  
}  
   
   

函数名: settextstyle  
功  能: 为图形输出设置当前的文本属性  
用  法: void far settextstyle (int font, int direction, char size);  
程序例:  

#include <graphics.h>  
#include <stdlib.h>  
#include <stdio.h>  
#include <conio.h>  

/* the names of the text styles supported */  
char *fname[] = { "DEFAULT font",  
                  "TRIPLEX font",  
                  "SMALL font",  
                  "SANS SERIF font",  
                  "GOTHIC font"  
                };  

int main(void)  
{  
   /* request auto detection */  
   int gdriver = DETECT, gmode, errorcode;  
   int style, midx, midy;  
   int size = 1;  

   /* 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 */  
   }  

   midx = getmaxx() / 2;  
   midy = getmaxy() / 2;  

   settextjustify(CENTER_TEXT, CENTER_TEXT);  

   /* loop through the available text styles */  
   for (style=DEFAULT_FONT; style<=GOTHIC_FONT; style++)  
   {  
      cleardevice();  
      if (style == TRIPLEX_FONT)  
         size = 4;  

      /* select the text style */  
      settextstyle(style, HORIZ_DIR, size);  

      /* output a message */  
      outtextxy(midx, midy, fname[style]);  
      getch();  
   }  

   /* clean up */  
   closegraph();  
   return 0;  
}
 楼主| 发表于 2006-5-21 11:38:00 | 显示全部楼层
函数名: settime  
功  能: 设置系统时间  
用  法: void settime(struct time *timep);  
程序例:  

#include <stdio.h>  
#include <dos.h>  

int main(void)  
{  
   struct  time t;  

   gettime(&t);  
   printf("The current minute is: %d\n", t.ti_min);  
   printf("The current hour is: %d\n", t.ti_hour);  
   printf("The current hundredth of a second is: %d\n", t.ti_hund);  
   printf("The current second is: %d\n", t.ti_sec);  

   /* Add one to the minutes struct element and then call settime  */  
   t.ti_min++;  
   settime(&t);  

   return 0;  
}  
   
   

函数名: setusercharsize  
功  能: 为矢量字体改变字符宽度和高度  
用  法: void far setusercharsize(int multx, int dirx, int multy, int diry);  
程序例:  

#include <graphics.h>  
#include <stdlib.h>  
#include <stdio.h>  
#include <conio.h>  

int main(void)  
{  
   /* request autodetection */  
   int gdriver = DETECT, gmode, errorcode;  

   /* 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 */  
   }  

   /* select a text style */  
   settextstyle(TRIPLEX_FONT, HORIZ_DIR, 4);  

   /* move to the text starting position */  
   moveto(0, getmaxy() / 2);  

   /* output some normal text */  
   outtext("Norm ");  

   /* make the text 1/3 the normal width */  
   setusercharsize(1, 3, 1, 1);  
   outtext("Short ");  

   /* make the text 3 times normal width */  
   setusercharsize(3, 1, 1, 1);  
   outtext("Wide");  

   /* clean up */  
   getch();  
   closegraph();  
   return 0;  
}  
   

函数名: setvbuf  
功  能: 把缓冲区与流相关  
用  法: int setvbuf(FILE *stream, char *buf, int type, unsigned size);  
程序例:  

#include <stdio.h>  

int main(void)  
{  
   FILE *input, *output;  
   char bufr[512];  

   input = fopen("file.in", "r+b");  
   output = fopen("file.out", "w");  

   /* set up input stream for minimal disk access,  
      using our own character buffer */  
   if (setvbuf(input, bufr, _IOFBF, 512) != 0)  
      printf("failed to set up buffer for input file\n");  
   else  
      printf("buffer set up for input file\n");  

   /* set up output stream for line buffering using space that  
      will be obtained through an indirect call to malloc */  
   if (setvbuf(output, NULL, _IOLBF, 132) != 0)  
      printf("failed to set up buffer for output file\n");  
   else  
      printf("buffer set up for output file\n");  

   /* perform file I/O here */  

   /* close files */  
   fclose(input);  
   fclose(output);  
   return 0;  
}  
   
   
   

函数名: setvect  
功  能: 设置中断矢量入口  
用  法: void setvect(int intr_num, void interrupt(*isr)());  
程序例:  

/***NOTE:  
    This is an interrupt service routine.  You can NOT compile this  
    program with Test Stack Overflow turned on and get an executable  
    file which will operate correctly. */  

#include <stdio.h>  
#include <dos.h>  
#include <conio.h>  

#define INTR 0X1C    /* The clock tick interrupt */  

void interrupt ( *oldhandler)(void);  

int count=0;  

void interrupt handler(void)  
{  
/* increase the global counter */  
   count++;  

/* call the old routine */  
   oldhandler();  
}  

int main(void)  
{  
/* save the old interrupt vector */  
   oldhandler = getvect(INTR);  

/* install the new interrupt handler */  
   setvect(INTR, handler);  

/* loop until the counter exceeds 20 */  
   while (count < 20)  
      printf("count is %d\n",count);  

/* reset the old interrupt handler */  
   setvect(INTR, oldhandler);  

   return 0;  
}  
   
   

函数名: setverify  
功  能: 设置验证状态  
用  法: void setverify(int value);  
程序例:  

#include <stdio.h>  
#include <conio.h>  
#include <dos.h>  

int main(void)  
{  
   int verify_flag;  

   printf("Enter 0 to set verify flag off\n");  
   printf("Enter 1 to set verify flag on\n");  

   verify_flag = getch() - 0;  

   setverify(verify_flag);  

   if (getverify())  
      printf("DOS verify flag is on\n");  
   else  
      printf("DOS verify flag is off\n");  

   return 0;  
}  
   
   

函数名: setviewport  
功  能: 为图形输出设置当前视口  
用  法: void far setviewport(int left, int top, int right,  
        int bottom, int clipflag);  
程序例:  

#include <graphics.h>  
#include <stdlib.h>  
#include <stdio.h>  
#include <conio.h>  

#define CLIP_ON 1   /* activates clipping in viewport */  

int main(void)  
{  
   /* request auto detection */  
   int gdriver = DETECT, gmode, errorcode;  

   /* 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 */  
   }  

   setcolor(getmaxcolor());  

   /* message in default full-screen viewport */  
   outtextxy(0, 0, "* <-- (0, 0) in default viewport");  

   /* create a smaller viewport */  
   setviewport(50, 50, getmaxx()-50, getmaxy()-50, CLIP_ON);  

   /* display some text */  
   outtextxy(0, 0, "* <-- (0, 0) in smaller viewport");  

   /* clean up */  
   getch();  
   closegraph();  
   return 0;  
}  
   
   

函数名: setvisualpage  
功  能: 设置可见图形页号  
用  法: void far setvisualpage(int pagenum);  
程序例:  

#include <graphics.h>  
#include <stdlib.h>  
#include <stdio.h>  
#include <conio.h>  

int main(void)  
{  
   /* select a driver and mode that supports */  
   /* multiple pages.                        */  
   int gdriver = EGA, gmode = EGAHI, errorcode;  
   int x, y, ht;  

   /* 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 */  
   }  

   x = getmaxx() / 2;  
   y = getmaxy() / 2;  
   ht = textheight("W");  

   /*  select the off screen page for drawing */  
   setactivepage(1);  

   /* draw a line on page #1 */  
   line(0, 0, getmaxx(), getmaxy());  

   /* output a message on page #1 */  
   settextjustify(CENTER_TEXT, CENTER_TEXT);  
   outtextxy(x, y, "This is page #1:");  
   outtextxy(x, y+ht, "Press any key to halt:");  

   /* select drawing to page #0 */  
   setactivepage(0);  

   /* output a message  on page #0 */  
   outtextxy(x, y, "This is page #0.");  
   outtextxy(x, y+ht, "Press any key to view page #1:");  
   getch();  

   /* select page #1 as the visible page */  
   setvisualpage(1);  

   /* clean up */  
   getch();  
   closegraph();  
   return 0;  
}  
   
   

函数名: setwritemode  
功  能: 设置图形方式下画线的输出模式  
用  法: void far setwritemode(int mode);  
程序例:  

#include <graphics.h>  
#include <stdlib.h>  
#include <stdio.h>  
#include <conio.h>  

int main()  
{  
   /* request auto detection */  
   int gdriver = DETECT, gmode, errorcode;  
   int xmax, ymax;  

   /* 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 */  
   }  

   xmax = getmaxx();  
   ymax = getmaxy();  

   /* select XOR drawing mode */  
   setwritemode(XOR_PUT);  

   /* draw a line */  
   line(0, 0, xmax, ymax);  
   getch();  

   /* erase the line by drawing over it */  
   line(0, 0, xmax, ymax);  
   getch();  

   /* select overwrite drawing mode */  
   setwritemode(COPY_PUT);  

   /* draw a line */  
   line(0, 0, xmax, ymax);  

   /* clean up */  
   getch();  
   closegraph();  
   return 0;  
}  
   
   

函数名: signal  
功  能: 设置某一信号的对应动作  
用  法: int signal(int sig, sigfun fname);  
程序例:  

/* This example installs a signal handler routine for SIGFPE,  
   catches an integer overflow condition, makes an adjustment  
   to AX register, and returns. This example program MAY cause  
   your computer to crash, and will produce runtime errors  
   depending on which memory model is used.  
*/  

#pragma inline  
#include <stdio.h>  
#include <signal.h>  

void Catcher(int sig, int type, int *reglist)  
{  
   printf("Caught it!\n");  
   *(reglist + 8) = 3;             /* make return AX = 3 */  
}  

int main(void)  
{  
   signal(SIGFPE, Catcher);  
   asm     mov     ax,07FFFH       /* AX = 32767 */  
   asm     inc     ax              /* cause overflow */  
   asm     into                    /* activate handler */  

   /* The handler set AX to 3 on return. If that hadn't happened,  
      there would have been another exception when the next 'into'  
      was executed after the 'dec' instruction. */  
   asm     dec     ax              /* no overflow now */  
   asm     into                    /* doesn't activate */  
   return 0;  
}  
   
   
   

函数名: sin  
功  能: 正弦函数  
用  法: double sin(double x);  
程序例:  

#include <stdio.h>  
#include <math.h>  

int main(void)  
{  
   double result, x = 0.5;  

   result = sin(x);  
   printf("The sin() of %lf is %lf\n", x, result);  
   return 0;  
}  
   
   

函数名: sinh  
功  能: 双曲正弦函数  
用  法: double sinh(double x);  
程序例:  

#include <stdio.h>  
#include <math.h>  

int main(void)  
{  
   double result, x = 0.5;  

   result = sinh(x);  
   printf("The hyperbolic sin() of %lf is %lf\n", x, result);  
   return 0;  
}  
   
   
   

函数名: sleep  
功  能: 执行挂起一段时间  
用  法: unsigned sleep(unsigned seconds);  
程序例:  

#include <dos.h>  
#include <stdio.h>  

int main(void)  
{  
   int i;  

   for (i=1; i<5; i++)  
   {  
      printf("Sleeping for %d seconds\n", i);  
      sleep(i);  
   }  
   return 0;  
}  
   
   
   

函数名: sopen  
功  能: 打开一共享文件  
用  法: int sopen(char *pathname, int access, int shflag, int permiss);  
程序例:  

#include <io.h>  
#include <fcntl.h>  
#include <sys\stat.h>  
#include <process.h>  
#include <share.h>  
#include <stdio.h>  

int main(void)  
{  
   int handle;  
   int status;  

   handle = sopen("c:\\autoexec.bat", O_RDONLY, SH_DENYNO, S_IREAD);  

   if (!handle)  
   {  
      printf("sopen failed\n");  
      exit(1);  
   }  

   status = access("c:\\autoexec.bat", 6);  
   if (status == 0)  
      printf("read/write access allowed\n");  
   else  
      printf("read/write access not allowed\n");  

   close(handle);  
   return 0;  
}
 楼主| 发表于 2006-5-21 11:38:00 | 显示全部楼层
C语言库函数(S类字母) - 3


函数名: sound  
功  能: 以指定频率打开PC扬声器  
用  法: void sound(unsigned frequency);  
程序例:  

/* Emits a 7-Hz tone for 10 seconds.  
   Your PC may not be able to emit a 7-Hz tone. */  
#include <dos.h>  

int main(void)  
{  
   sound(7);  
   delay(10000);  
   nosound();  
   return 0;  
}  
   
   
   

函数名: spawnl  
功  能: 创建并运行子程序  
用  法: int spawnl(int mode, char *pathname, char *arg0,  
     arg1, ... argn, NULL);  
程序例:  

#include <process.h>  
#include <stdio.h>  
#include <conio.h>  

int main(void)  
{  
   int result;  

   clrscr();  
   result = spawnl(P_WAIT, "tcc.exe", NULL);  
   if (result == -1)  
   {  
      perror("Error from spawnl");  
      exit(1);  
   }  
   return 0;  
}  
   
   

函数名: spawnle  
功  能: 创建并运行子程序  
用  法: int spawnle(int mode, char *pathname, char *arg0,  
      arg1,..., argn, NULL);  
程序例:  

/* spawnle() example */  

#include <process.h>  
#include <stdio.h>  
#include <conio.h>  

int main(void)  
{  
   int result;  

   clrscr();  
   result = spawnle(P_WAIT, "tcc.exe", NULL, NULL);  
   if (result == -1)  
   {  
      perror("Error from spawnle");  
      exit(1);  
   }  
   return 0;  
}  
   
   
   

函数名: sprintf  
功  能: 送格式化输出到字符串中  
用  法: int sprintf(char *string, char *farmat [,argument,...]);  
程序例:  

#include <stdio.h>  
#include <math.h>  

int main(void)  
{  
   char buffer[80];  

   sprintf(buffer, "An approximation of Pi is %f\n", M_PI);  
   puts(buffer);  
   return 0;  
}  
   
   

函数名: sqrt  
功  能: 计算平方根  
用  法: double sqrt(double x);  
程序例:  

#include <math.h>  
#include <stdio.h>  

int main(void)  
{  
    double x = 4.0, result;  

    result = sqrt(x);  
    printf("The square root of %lf is %lf\n", x, result);  
    return 0;  
}  
   

函数名: srand  
功  能: 初始化随机数发生器  
用  法: void srand(unsigned seed);  
程序例:  

#include <stdlib.h>  
#include <stdio.h>  
#include <time.h>  

int main(void)  
{  
   int i;  
   time_t t;  

   srand((unsigned) time(&t));  
   printf("Ten random numbers from 0 to 99\n\n");  
   for(i=0; i<10; i++)  
       printf("%d\n", rand() % 100);  
   return 0;  
}  
   
   

函数名: sscanf  
功  能: 执行从字符串中的格式化输入  
用  法: int sscanf(char *string, char *format[,argument,...]);  
程序例:  

#include <stdio.h>  
#include <conio.h>  

int main(void)  
{  
   char label[20];  
   char name[20];  
   int entries = 0;  
   int loop, age;  
   double salary;  

   struct Entry_struct  
   {  
      char  name[20];  
      int   age;  
      float salary;  
   } entry[20];  

/* Input a label as a string of characters restricting to 20 characters */  
   printf("\n\nPlease enter a label for the chart: ");  
   scanf("%20s", label);  
   fflush(stdin);  /* flush the input stream in case of bad input */  

/* Input number of entries as an integer */  
   printf("How many entries will there be? (less than 20) ");  
   scanf("%d", &entries);  
   fflush(stdin);   /* flush the input stream in case of bad input */  

/* input a name restricting input to only letters upper or lower case */  
   for (loop=0;loop<entries;++loop)  
   {  
      printf("Entry %d\n", loop);  
      printf("  Name   : ");  
      scanf("%[A-Za-z]", entry[loop].name);  
      fflush(stdin);  /* flush the input stream in case of bad input */  

/* input an age as an integer */  
      printf("  Age    : ");  
      scanf("%d", &entry[loop].age);  
      fflush(stdin);  /* flush the input stream in case of bad input */  

/* input a salary as a float */  
      printf("  Salary : ");  
      scanf("%f", &entry[loop].salary);  
      fflush(stdin); /* flush the input stream in case of bad input */  
   }  

/* Input a name, age and salary as a string, integer, and double */  
   printf("\nPlease enter your name, age and salary\n");  
   scanf("%20s %d %lf", name, &age, &salary);  
   

/* Print out the data that was input */  
   printf("\n\nTable %s\n",label);  
   printf("Compiled by %s  age %d  $%15.2lf\n", name, age, salary);  
   printf("-----------------------------------------------------\n");  
   for (loop=0;loop<entries;++loop)  
      printf("%4d | %-20s | %5d | %15.2lf\n",  
         loop + 1,  
  entry[loop].name,  
  entry[loop].age,  
  entry[loop].salary);  
   printf("-----------------------------------------------------\n");  
   return 0;  
}  
   
   

函数名: stat  
功  能: 读取打开文件信息  
用  法: int stat(char *pathname, struct stat *buff);  
程序例:  

#include <sys\stat.h>  
#include <stdio.h>  
#include <time.h>  

#define FILENAME "TEST.$$$"  

int main(void)  
{  
   struct stat statbuf;  
   FILE *stream;  

   /* open a file for update */  
   if ((stream = fopen(FILENAME, "w+")) == NULL)  
   {  
      fprintf(stderr, "Cannot open output file.\n");  
      return(1);  
   }  

   /* get information about the file */  
   stat(FILENAME, &statbuf);  

   fclose(stream);  

   /* display the information returned */  
   if (statbuf.st_mode & S_IFCHR)  
      printf("Handle refers to a device.\n");  
   if (statbuf.st_mode & S_IFREG)  
      printf("Handle refers to an ordinary file.\n");  
   if (statbuf.st_mode & S_IREAD)  
      printf("User has read permission on file.\n");  
   if (statbuf.st_mode & S_IWRITE)  
      printf("User has write permission on file.\n");  

   printf("Drive letter of file: %c\n", 'A'+statbuf.st_dev);  
   printf("Size of file in bytes: %ld\n", statbuf.st_size);  
   printf("Time file last opened: %s\n", ctime(&statbuf.st_ctime));  
   return 0;  
}  
   
   
   

函数名: _status87  
功  能: 取浮点状态  
用  法: unsigned int _status87(void);  
程序例:  

#include <stdio.h>  
#include <float.h>  

int main(void)  
{  
   float x;  
   double y = 1.5e-100;  

   printf("Status 87 before error: %x\n", _status87());  

   x = y;  /* <-- force an error to occur */  
   y = x;  

   printf("Status 87 after error : %x\n", _status87());  
   return 0;  
}  
   
   

函数名: stime  
功  能: 设置时间  
用  法: int stime(long *tp);  
程序例:  

#include <stdio.h>  
#include <time.h>  
#include <dos.h>  

int main(void)  
{  
   time_t t;  
   struct tm *area;  

   t = time(NULL);  
   area = localtime(&t);  
   printf("Number of seconds since 1/1/1970 is: %ld\n", t);  
   printf("Local time is: %s", asctime(area));  

   t++;  
   area = localtime(&t);  
   printf("Add a second:  %s", asctime(area));  

   t += 60;  
   area = localtime(&t);  
   printf("Add a minute:  %s", asctime(area));  

   t += 3600;  
   area = localtime(&t);  
   printf("Add an hour:   %s", asctime(area));  

   t += 86400L;  
   area = localtime(&t);  
   printf("Add a day:     %s", asctime(area));  

   t += 2592000L;  
   area = localtime(&t);  
   printf("Add a month:   %s", asctime(area));  

   t += 31536000L;  
   area = localtime(&t);  
   printf("Add a year:    %s", asctime(area));  
   return 0;  
}  
   
   
   

函数名: stpcpy  
功  能: 拷贝一个字符串到另一个  
用  法: char *stpcpy(char *destin, char *source);  
程序例:  

#include <stdio.h>  
#include <string.h>  

int main(void)  
{  
   char string[10];  
   char *str1 = "abcdefghi";  

   stpcpy(string, str1);  
   printf("%s\n", string);  
   return 0;  
}  
   
   
   

函数名: strcat  
功  能: 字符串拼接函数  
用  法: char *strcat(char *destin, char *source);  
程序例:  

#include <string.h>  
#include <stdio.h>  

int main(void)  
{  
   char destination[25];  
   char *blank = " ", *c = "C++", *Borland = "Borland";  

   strcpy(destination, Borland);  
   strcat(destination, blank);  
   strcat(destination, c);  

   printf("%s\n", destination);  
   return 0;  
}  
   
   
   

函数名: strchr  
功  能: 在一个串中查找给定字符的第一个匹配之处\  
用  法: char *strchr(char *str, char c);  
程序例:  

#include <string.h>  
#include <stdio.h>  

int main(void)  
{  
    char string[15];  
    char *ptr, c = 'r';  

    strcpy(string, "This is a string");  
    ptr = strchr(string, c);  
    if (ptr)  
       printf("The character %c is at position: %d\n", c, ptr-string);  
    else  
       printf("The character was not found\n");  
    return 0;  
}  
   
   
   

函数名: strcmp  
功  能: 串比较  
用  法: int strcmp(char *str1, char *str2);  
程序例:  

#include <string.h>  
#include <stdio.h>  

int main(void)  
{  
    char *buf1 = "aaa", *buf2 = "bbb", *buf3 = "ccc";  
    int ptr;  

    ptr = strcmp(buf2, buf1);  
    if (ptr > 0)  
       printf("buffer 2 is greater than buffer 1\n");  
    else  
       printf("buffer 2 is less than buffer 1\n");  

    ptr = strcmp(buf2, buf3);  
    if (ptr > 0)  
       printf("buffer 2 is greater than buffer 3\n");  
    else  
       printf("buffer 2 is less than buffer 3\n");  

    return 0;  
}  
   
   
   

函数名: strncmpi  
功  能: 将一个串中的一部分与另一个串比较, 不管大小写  
用  法: int strncmpi(char *str1, char *str2, unsigned maxlen);  
程序例:  

#include <string.h>  
#include <stdio.h>  

int main(void)  
{  
   char *buf1 = "BBB", *buf2 = "bbb";  
   int ptr;  

   ptr = strcmpi(buf2, buf1);  

   if (ptr > 0)  
      printf("buffer 2 is greater than buffer 1\n");  

   if (ptr < 0)  
      printf("buffer 2 is less than buffer 1\n");  

   if (ptr == 0)  
      printf("buffer 2 equals buffer 1\n");  

   return 0;  
}
 楼主| 发表于 2006-5-21 11:39:00 | 显示全部楼层
函数名: strcpy  
功  能: 串拷贝  
用  法: char *strcpy(char *str1, char *str2);  
程序例:  

#include <stdio.h>  
#include <string.h>  

int main(void)  
{  
    char string[10];  
    char *str1 = "abcdefghi";  

    strcpy(string, str1);  
    printf("%s\n", string);  
    return 0;  
}  
   
   
   

函数名: strcspn  
功  能: 在串中查找第一个给定字符集内容的段  
用  法: int strcspn(char *str1, char *str2);  
程序例:  

#include <stdio.h>  
#include <string.h>  
#include <alloc.h>  

int main(void)  
{  
    char *string1 = "1234567890";  
    char *string2 = "747DC8";  
    int length;  

    length = strcspn(string1, string2);  
    printf("Character where strings intersect is at position %d\n", length);  

    return 0;  
}  
   
   
   

函数名: strdup  
功  能: 将串拷贝到新建的位置处  
用  法: char *strdup(char *str);  
程序例:  

#include <stdio.h>  
#include <string.h>  
#include <alloc.h>  

int main(void)  
{  
    char *dup_str, *string = "abcde";  

    dup_str = strdup(string);  
    printf("%s\n", dup_str);  
    free(dup_str);  

    return 0;  
}  
   
   
   

函数名: stricmp  
功  能: 以大小写不敏感方式比较两个串  
用  法: int stricmp(char *str1, char *str2);  
程序例:  

#include <string.h>  
#include <stdio.h>  

int main(void)  
{  
   char *buf1 = "BBB", *buf2 = "bbb";  
   int ptr;  

   ptr = stricmp(buf2, buf1);  

   if (ptr > 0)  
      printf("buffer 2 is greater than buffer 1\n");  

   if (ptr < 0)  
      printf("buffer 2 is less than buffer 1\n");  

   if (ptr == 0)  
      printf("buffer 2 equals buffer 1\n");  

   return 0;  
}  
   
   

函数名: strerror  
功  能: 返回指向错误信息字符串的指针  
用  法: char *strerror(int errnum);  
程序例:  

#include <stdio.h>  
#include <errno.h>  

int main(void)  
{  
   char *buffer;  
   buffer = strerror(errno);  
   printf("Error: %s\n", buffer);  
   return 0;  
}  
   
   
   

函数名: strcmpi  
功  能: 将一个串与另一个比较, 不管大小写  
用  法: int strcmpi(char *str1, char *str2);  
程序例:  

#include <string.h>  
#include <stdio.h>  

int main(void)  
{  
   char *buf1 = "BBB", *buf2 = "bbb";  
   int ptr;  

   ptr = strcmpi(buf2, buf1);  

   if (ptr > 0)  
      printf("buffer 2 is greater than buffer 1\n");  

   if (ptr < 0)  
      printf("buffer 2 is less than buffer 1\n");  

   if (ptr == 0)  
      printf("buffer 2 equals buffer 1\n");  

   return 0;  
}  
   
   
   

函数名: strncmp  
功  能: 串比较  
用  法: int strncmp(char *str1, char *str2, int maxlen);  
程序例:  

#include <string.h>  
#include <stdio.h>  

int  main(void)  

{  
   char *buf1 = "aaabbb", *buf2 = "bbbccc", *buf3 = "ccc";  
   int ptr;  

   ptr = strncmp(buf2,buf1,3);  
   if (ptr > 0)  
      printf("buffer 2 is greater than buffer 1\n");  
   else  
      printf("buffer 2 is less than buffer 1\n");  

   ptr = strncmp(buf2,buf3,3);  
   if (ptr > 0)  
      printf("buffer 2 is greater than buffer 3\n");  
   else  
      printf("buffer 2 is less than buffer 3\n");  

   return(0);  
}  
   
   

函数名: strncmpi  
功  能: 把串中的一部分与另一串中的一部分比较, 不管大小写  
用  法: int strncmpi(char *str1, char *str2);  
程序例:  

#include <string.h>  
#include <stdio.h>  

int main(void)  
{  
   char *buf1 = "BBBccc", *buf2 = "bbbccc";  
   int ptr;  

   ptr = strncmpi(buf2,buf1,3);  

   if (ptr > 0)  
      printf("buffer 2 is greater than buffer 1\n");  

   if (ptr < 0)  
      printf("buffer 2 is less than buffer 1\n");  

   if (ptr == 0)  
      printf("buffer 2 equals buffer 1\n");  

   return 0;  
}  
   
   

函数名: strncpy  
功  能: 串拷贝  
用  法: char *strncpy(char *destin, char *source, int maxlen);  
程序例:  

#include <stdio.h>  
#include <string.h>  

int main(void)  
{  
   char string[10];  
   char *str1 = "abcdefghi";  

   strncpy(string, str1, 3);  
   string[3] = '\0';  
   printf("%s\n", string);  
   return 0;  
}  
   
   

函数名: strnicmp  
功  能: 不注重大小写地比较两个串  
用  法: int strnicmp(char *str1, char *str2, unsigned maxlen);  
程序例:  

#include <string.h>  
#include <stdio.h>  

int main(void)  
{  
   char *buf1 = "BBBccc", *buf2 = "bbbccc";  
   int ptr;  

   ptr = strnicmp(buf2, buf1, 3);  

   if (ptr > 0)  
      printf("buffer 2 is greater than buffer 1\n");  

   if (ptr < 0)  
      printf("buffer 2 is less than buffer 1\n");  

   if (ptr == 0)  
      printf("buffer 2 equals buffer 1\n");  

   return 0;  
}  
   
   
   

函数名: strnset  
功  能: 将一个串中的所有字符都设为指定字符  
用  法: char *strnset(char *str, char ch, unsigned n);  
程序例:  

#include <stdio.h>  
#include <string.h>  

int main(void)  
{  
   char *string = "abcdefghijklmnopqrstuvwxyz";  
   char letter = 'x';  

   printf("string before strnset: %s\n", string);  
   strnset(string, letter, 13);  
   printf("string after  strnset: %s\n", string);  

   return 0;  
}  
   
   

函数名: strpbrk  
功  能: 在串中查找给定字符集中的字符  
用  法: char *strpbrk(char *str1, char *str2);  
程序例:  

#include <stdio.h>  
#include <string.h>  

int main(void)  
{  
   char *string1 = "abcdefghijklmnopqrstuvwxyz";  
   char *string2 = "onm";  
   char *ptr;  

   ptr = strpbrk(string1, string2);  

   if (ptr)  
      printf("strpbrk found first character: %c\n", *ptr);  
   else  
      printf("strpbrk didn't find character in set\n");  

   return 0;  
}  
   
   
   

函数名: strrchr  
功  能: 在串中查找指定字符的最后一个出现  
用  法: char *strrchr(char *str, char c);  
程序例:  

#include <string.h>  
#include <stdio.h>  

int main(void)  
{  
   char string[15];  
   char *ptr, c = 'r';  

   strcpy(string, "This is a string");  
   ptr = strrchr(string, c);  
   if (ptr)  
      printf("The character %c is at position: %d\n", c, ptr-string);  
   else  
      printf("The character was not found\n");  
   return 0;  
}  
   
   
   

函数名: strrev  
功  能: 串倒转  
用  法: char *strrev(char *str);  
程序例:  

#include <string.h>  
#include <stdio.h>  

int main(void)  
{  
   char *forward = "string";  

   printf("Before strrev(): %s\n", forward);  
   strrev(forward);  
   printf("After strrev():  %s\n", forward);  
   return 0;  
}  
   

函数名: strset  
功  能: 将一个串中的所有字符都设为指定字符  
用  法: char *strset(char *str, char c);  
程序例:  

#include <stdio.h>  
#include <string.h>  

int main(void)  
{  
   char string[10] = "123456789";  
   char symbol = 'c';  

   printf("Before strset(): %s\n", string);  
   strset(string, symbol);  
   printf("After strset():  %s\n", string);  
   return 0;  
}  
   
   
   

函数名: strspn  
功  能: 在串中查找指定字符集的子集的第一次出现  
用  法: int strspn(char *str1, char *str2);  
程序例:  

#include <stdio.h>  
#include <string.h>  
#include <alloc.h>  

int main(void)  
{  
   char *string1 = "1234567890";  
   char *string2 = "123DC8";  
   int length;  

   length = strspn(string1, string2);  
   printf("Character where strings differ is at position %d\n", length);  
   return 0;  
}  
   
   

函数名: strstr  
功  能: 在串中查找指定字符串的第一次出现  
用  法: char *strstr(char *str1, char *str2);  
程序例:  

#include <stdio.h>  
#include <string.h>  

int main(void)  
{  
   char *str1 = "Borland International", *str2 = "nation", *ptr;  

   ptr = strstr(str1, str2);  
   printf("The substring is: %s\n", ptr);  
   return 0;  
}  
   
   

函数名: strtod  
功  能: 将字符串转换为double型值  
用  法: double strtod(char *str, char **endptr);  
程序例:  

#include <stdio.h>  
#include <stdlib.h>  

int main(void)  
{  
   char input[80], *endptr;  
   double value;  

   printf("Enter a floating point number:");  
   gets(input);  
   value = strtod(input, &endptr);  
   printf("The string is %s the number is %lf\n", input, value);  
   return 0;  
}  
   
   
   

函数名: strtok  
功  能: 查找由在第二个串中指定的分界符分隔开的单词  
用  法: char *strtok(char *str1, char *str2);  
程序例:  

#include <string.h>  
#include <stdio.h>  

int main(void)  
{  
   char input[16] = "abc,d";  
   char *p;  

   /* strtok places a NULL terminator  
   in front of the token, if found */  
   p = strtok(input, ",");  
   if (p)   printf("%s\n", p);  

   /* A second call to strtok using a NULL  
   as the first parameter returns a pointer  
   to the character following the token  */  
   p = strtok(NULL, ",");  
   if (p)   printf("%s\n", p);  
   return 0;  
}  
   
   
   

函数名: strtol  
功  能: 将串转换为长整数  
用  法: long strtol(char *str, char **endptr, int base);  
程序例:  

#include <stdlib.h>  
#include <stdio.h>  

int main(void)  
{  
   char *string = "87654321", *endptr;  
   long lnumber;  

   /* strtol converts string to long integer  */  
   lnumber = strtol(string, &endptr, 10);  
   printf("string = %s  long = %ld\n", string, lnumber);  

   return 0;  
}  
   

函数名: strupr  
功  能: 将串中的小写字母转换为大写字母  
用  法: char *strupr(char *str);  
程序例:  

#include <stdio.h>  
#include <string.h>  

int main(void)  
{  
   char *string = "abcdefghijklmnopqrstuvwxyz", *ptr;  

   /* converts string to upper case characters */  
   ptr = strupr(string);  
   printf("%s\n", ptr);  
   return 0;  
}  
   
   
   

函数名: swab  
功  能: 交换字节  
用  法: void swab (char *from, char *to, int nbytes);  
程序例:  

#include <stdlib.h>  
#include <stdio.h>  
#include <string.h>  

char source[15] = "rFna koBlrna d";  
char target[15];  

int main(void)  
{  
   swab(source, target, strlen(source));  
   printf("This is target: %s\n", target);  
   return 0;  
}  
   
   
   

函数名: system  
功  能: 发出一个DOS命令  
用  法: int system(char *command);  
程序例:  

#include <stdlib.h>  
#include <stdio.h>  

int main(void)  
{  
   printf("About to spawn command.com and run a DOS command\n");  
   system("dir");  
   return 0;  
}
 楼主| 发表于 2006-5-21 11:39:00 | 显示全部楼层
C语言库函数(U类字母)

       
函数名: ultoa  
功  能: 转换一个无符号长整型数为字符串  
用  法: char *ultoa(unsigned long value, char *string, int radix);  
程序例:  

#include <stdlib.h>  
#include <stdio.h>  

int main( void )  
{  
   unsigned long lnumber = 3123456789L;  
   char string[25];  

   ultoa(lnumber,string,10);  
   printf("string = %s  unsigned long = %lu\n",string,lnumber);  

   return 0;  
}  
   
   
   

函数名: ungetc  
功  能: 把一个字符退回到输入流中  
用  法: int ungetc(char c, FILE *stream);  
程序例:  

#include <stdio.h>  
#include <ctype.h>  

int main( void )  
{  
   int i=0;  
   char ch;  

   puts("Input an integer followed by a char:");  

   /* read chars until non digit or EOF */  
   while((ch = getchar()) != EOF && isdigit(ch))  
      i = 10 * i + ch - 48; /* convert ASCII into int value */  

   /* if non digit char was read, push it back into input buffer */  
   if (ch != EOF)  
      ungetc(ch, stdin);  

   printf("i = %d, next char in buffer = %c\n", i, getchar());  
   return 0;  
}  
   
   
   

函数名: ungetch  
功  能: 把一个字符退回到键盘缓冲区中  
用  法: int ungetch(int c);  
程序例:  

#include <stdio.h>  
#include <ctype.h>  
#include <conio.h>  

int main( void )  
{  
   int i=0;  
   char ch;  

   puts("Input an integer followed by a char:");  

   /* read chars until non digit or EOF */  
   while((ch = getche()) != EOF && isdigit(ch))  
      i = 10 * i + ch - 48; /* convert ASCII into int value */  

   /* if non digit char was read, push it back into input buffer */  
   if (ch != EOF)  
      ungetch(ch);  

   printf("\n\ni = %d, next char in buffer = %c\n", i, getch());  
   return 0;  
}  
   
   
   

函数名: unixtodos  
功  能: 把日期和时间转换成DOS格式  
用  法: void unixtodos(long utime, struct date *dateptr,  
   struct time *timeptr);  
程序例:  

#include <stdio.h>  
#include <dos.h>  

char *month[] = {"---", "Jan", "Feb", "Mar", "Apr", "May", "Jun",  
                 "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"};  

#define SECONDS_PER_DAY 86400L  /* the number of seconds in one day */  

struct date dt;  
struct time tm;  

int main(void)  
{  
   unsigned long val;  

/* get today's date and time */  
   getdate(&dt);  
   gettime(&tm);  
   printf("today is %d %s %d\n", dt.da_day, month[dt.da_mon], dt.da_year);  

/* convert date and time to unix format (number of seconds since Jan 1, 1970 */  
   val = dostounix(&dt, &tm);  
/* subtract 42 days worth of seconds */  
   val -= (SECONDS_PER_DAY * 42);  

/* convert back to dos time and date */  
   unixtodos(val, &dt, &tm);  
   printf("42 days ago it was %d %s %d\n",  
        dt.da_day, month[dt.da_mon], dt.da_year);  
   return 0;  
}  
   
   
   

函数名: unlink  
功  能: 删掉一个文件  
用  法: int unlink(char *filename);  
程序例:  

#include <stdio.h>  
#include <io.h>  

int main(void)  
{  
   FILE *fp = fopen("junk.jnk","w");  
   int status;  

   fprintf(fp,"junk");  

   status = access("junk.jnk",0);  
   if (status == 0)  
      printf("File exists\n");  
   else  
      printf("File doesn't exist\n");  

   fclose(fp);  
   unlink("junk.jnk");  
   status = access("junk.jnk",0);  
   if (status == 0)  
      printf("File exists\n");  
   else  
      printf("File doesn't exist\n");  
   

   return 0;  
}  
   
   
   

函数名: unlock  
功  能: 解除文件共享锁  
用  法: int unlock(int handle, long offset, long length);  
程序例:  

#include <io.h>  
#include <fcntl.h>  
#include <sys\stat.h>  
#include <process.h>  
#include <share.h>  
#include <stdio.h>  

int main(void)  
{  
   int handle, status;  
   long length;  

   handle = sopen("c:\\autoexec.bat",O_RDONLY,SH_DENYNO,S_IREAD);  

   if (handle < 0)  
   {  
       printf("sopen failed\n");  
       exit(1);  
   }  

   length = filelength(handle);  
   status = lock(handle,0L,length/2);  

   if (status == 0)  
      printf("lock succeeded\n");  
   else  
      printf("lock failed\n");  

   status = unlock(handle,0L,length/2);  

   if (status == 0)  
      printf("unlock succeeded\n");  
   else  
      printf("unlock failed\n");  

   close(handle);  
   return 0;  
}
 楼主| 发表于 2006-5-21 11:40:00 | 显示全部楼层
C语言库函数(W类字母)

      
函数名: wherex
功  能: 返回窗口内水平光标位置
用  法: int wherex(void);
程序例:  

#include <conio.h>  

int main(void)
{
   clrscr();
   gotoxy(10,10);
   cprintf("Current location is X: %d  Y: %d\r\n", wherex(), wherey());
   getch();  

   return 0;
}
  
  
   

函数名: wherey
功  能: 返回窗口内垂直光标位置
用  法: int wherey(void);
程序例:  

#include <conio.h>  

int main(void)
{
   clrscr();
   gotoxy(10,10);
   cprintf("Current location is X: %d  Y: %d\r\n", wherex(), wherey());
   getch();  

   return 0;
}
  
  
   

函数名: window
功  能: 定义活动文本模式窗口
用  法: void window(int left, int top, int right, int bottom);
程序例:  

#include <conio.h>  

int main(void)
{  

   window(10,10,40,11);
   textcolor(BLACK);
   textbackground(WHITE);
   cprintf("This is a test\r\n");  

   return 0;
}
  
  
   

函数名: write
功  能: 写到一文件中
用  法: int write(int handel, void *buf, int nbyte);
程序例:  

#include <stdio.h>
#include <stdlib.h>
#include <fcntl.h>
#include <sys\stat.h>
#include <io.h>
#include <string.h>  

int main(void)
{
   int handle;
   char string[40];
   int length, res;  

   /*
    Create a file named "TEST.$$$" in the current directory and write
    a string to it.  If "TEST.$$$" already exists, it will be overwritten.
   */  

   if ((handle = open("TEST.$$$", O_WRONLY | O_CREAT | O_TRUNC,
                         S_IREAD | S_IWRITE)) == -1)
   {
      printf("Error opening file.\n");
      exit(1);
   }  

   strcpy(string, "Hello, world!\n");
   length = strlen(string);  

   if ((res = write(handle, string, length)) != length)
   {
      printf("Error writing to the file.\n");
      exit(1);
   }
   printf("Wrote %d bytes to the file.\n", res);  

   close(handle);
   return 0;
}
 楼主| 发表于 2006-5-21 11:40:00 | 显示全部楼层
C语言库函数(V类字母)

  
函数名: vfprintf  
功  能: 送格式化输出到一流中  
用  法: int vfprintf(FILE *stream, char *format, va_list param);  
程序例:  

#include <stdio.h>  
#include <stdlib.h>  
#include <stdarg.h>  

FILE *fp;  

int vfpf(char *fmt, ...)  
{  
   va_list argptr;  
   int cnt;  

   va_start(argptr, fmt);  
   cnt = vfprintf(fp, fmt, argptr);  
   va_end(argptr);  

   return(cnt);  
}  

int main(void)  
{  
   int inumber = 30;  
   float fnumber = 90.0;  
   char string[4] = "abc";  

   fp = tmpfile();  
   if (fp == NULL)  
   {  
      perror("tmpfile() call");  
      exit(1);  
   }  

   vfpf("%d %f %s", inumber, fnumber, string);  
   rewind(fp);  
   fscanf(fp,"%d %f %s", &inumber, &fnumber, string);  
   printf("%d %f %s\n", inumber, fnumber, string);  
   fclose(fp);  

   return 0;  
}  
   
   
   

函数名: vfscanf  
功  能: 从流中执行格式化输入  
用  法: int vfscanf(FILE *stream, char *format, va_list param);  
程序例:  

#include <stdio.h>  
#include <stdlib.h>  
#include <stdarg.h>  

FILE *fp;  

int vfsf(char *fmt, ...)  
{  
   va_list  argptr;  
   int cnt;  

   va_start(argptr, fmt);  
   cnt = vfscanf(fp, fmt, argptr);  
   va_end(argptr);  

   return(cnt);  
}  

int main(void)  
{  
   int inumber = 30;  
   float fnumber = 90.0;  
         char string[4] = "abc";  

   fp = tmpfile();  
   if (fp == NULL)  
   {  
      perror("tmpfile() call");  
      exit(1);  
   }  
   fprintf(fp,"%d %f %s\n",inumber,fnumber,string);  
   rewind(fp);  

   vfsf("%d %f %s",&inumber,&fnumber,string);  
   printf("%d %f %s\n",inumber,fnumber,string);  
   fclose(fp);  

   return 0;  
}  
   
   

函数名: vprintf  
功  能: 送格式化输出到stdout中  
用  法: int vprintf(char *format, va_list param);  
程序例:  

#include <stdio.h>  
#include <stdarg.h>  

int vpf(char *fmt, ...)  
{  
   va_list argptr;  
   int cnt;  

   va_start(argptr, format);  
   cnt = vprintf(fmt, argptr);  
   va_end(argptr);  

   return(cnt);  
}  

int main(void)  
{  
   int inumber = 30;  
   float fnumber = 90.0;  
   char *string = "abc";  

   vpf("%d %f %s\n",inumber,fnumber,string);  

   return 0;  
}  
   
   

函数名: vscanf  
功  能: 从stdin中执行格式化输入  
用  法: int vscanf(char *format, va_list param);  
程序例:  

#include <stdio.h>  
#include <conio.h>  
#include <stdarg.h>  

int vscnf(char *fmt, ...)  
{  
   va_list argptr;  
   int cnt;  

   printf("Enter an integer, a float,  and a string (e.g. i,f,s,)\n");  
   va_start(argptr, fmt);  
   cnt = vscanf(fmt, argptr);  
   va_end(argptr);  

   return(cnt);  
}  

int main(void)  
{  
   int inumber;  
   float fnumber;  
   char string[80];  

   vscnf("%d, %f, %s", &inumber, &fnumber, string);  
   printf("%d %f %s\n", inumber, fnumber, string);  

   return 0;  
}  
   
   
   

函数名: vsprintf  
功  能: 送格式化输出到串中  
用  法: int vsprintf(char *string, char *format, va_list param);  
程序例:  

#include <stdio.h>  
#include <conio.h>  
#include <stdarg.h>  

char buffer[80];  

int vspf(char *fmt, ...)  
{  
   va_list argptr;  
   int cnt;  

   va_start(argptr, fmt);  
   cnt = vsprintf(buffer, fmt, argptr);  
   va_end(argptr);  

   return(cnt);  
}  

int main(void)  
{  
   int inumber = 30;  
   float fnumber = 90.0;  
   char string[4] = "abc";  

   vspf("%d %f %s", inumber, fnumber, string);  
   printf("%s\n", buffer);  
   return 0;  
}  
   
   
   

函数名: vsscanf  
功  能: 从流中执行格式化输入  
用  法: int vsscanf(char *s, char *format, va_list param);  
程序例:  

#include <stdio.h>  
#include <conio.h>  
#include <stdarg.h>  

char buffer[80] = "30 90.0 abc";  

int vssf(char *fmt, ...)  
{  
   va_list  argptr;  
   int cnt;  

   fflush(stdin);  

   va_start(argptr, fmt);  
   cnt = vsscanf(buffer, fmt, argptr);  
   va_end(argptr);  

   return(cnt);  
}  

int main(void)  
{  
   int inumber;  
   float fnumber;  
   char string[80];  

   vssf("%d %f %s", &inumber, &fnumber, string);  
   printf("%d %f %s\n", inumber, fnumber, string);  
   return 0;  
}
 楼主| 发表于 2006-5-21 11:42:00 | 显示全部楼层
呵呵,有空我会把它整理为电子书格式传上来
 楼主| 发表于 2006-5-21 10:29:04 | 显示全部楼层 |阅读模式
C语言库函数(A类字母)


函数名: abort
功 能: 异常终止一个进程
用 法: void abort(void);
程序例:
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
printf("Calling abort()\n");
abort();
return 0; /* This is never reached */
}


函数名: abs
功 能: 求整数的绝对值
用 法: int abs(int i);
程序例:
#include <stdio.h>
#include <math.h>

int main(void)
{
int number = -1234;

printf("number: %d absolute value: %d\n", number, abs(number));
return 0;
}


函数名: absread, abswirte
功 能: 绝对磁盘扇区读、写数据
用 法: int absread(int drive, int nsects, int sectno, void *buffer);
int abswrite(int drive, int nsects, in tsectno, void *buffer);
程序例:
/* absread example */

#include <stdio.h>
#include <conio.h>
#include <process.h>
#include <dos.h>

int main(void)
{
int i, strt, ch_out, sector;
char buf[512];

printf("Insert a diskette into drive A and press any key\n");
getch();
sector = 0;
if (absread(0, 1, sector, &buf) != 0)
{
perror("Disk problem");
exit(1);
}
printf("Read OK\n");
strt = 3;
for (i=0; i<80; i++)
{
ch_out = buf[strt+i];
putchar(ch_out);
}
printf("\n");
return(0);
}



函数名: access
功 能: 确定文件的访问权限
用 法: int access(const char *filename, int amode);
程序例:
#include <stdio.h>
#include <io.h>

int file_exists(char *filename);

int main(void)
{
printf("Does NOTEXIST.FIL exist: %s\n",
file_exists("NOTEXISTS.FIL") ? "YES" : "NO");
return 0;
}

int file_exists(char *filename)
{
return (access(filename, 0) == 0);
}


函数名: acos
功 能: 反余弦函数
用 法: double acos(double x);
程序例:
#include <stdio.h>
#include <math.h>

int main(void)
{
double result;
double x = 0.5;

result = acos(x);
printf("The arc cosine of %lf is %lf\n", x, result);
return 0;
}


函数名: allocmem
功 能: 分配DOS存储段
用 法: int allocmem(unsigned size, unsigned *seg);
程序例:
#include <dos.h>
#include <alloc.h>
#include <stdio.h>

int main(void)
{
unsigned int size, segp;
int stat;

size = 64; /* (64 x 16) = 1024 bytes */
stat = allocmem(size, &segp);
if (stat == -1)
printf("Allocated memory at segment: %x\n", segp);
else
printf("Failed: maximum number of paragraphs available is %u\n",
stat);

return 0;
}


函数名: arc
功 能: 画一弧线
用 法: void far arc(int x, int y, int stangle, int endangle, int radius);
程序例:
#include <graphics.h>
#include <stdlib.h>
#include <stdio.h>
#include <conio.h>

int main(void)
{
/* request auto detection */
int gdriver = DETECT, gmode, errorcode;
int midx, midy;
int stangle = 45, endangle = 135;
int radius = 100;

/* initialize graphics and local variables */
initgraph(&gdriver, &gmode, "");

/* read result of initialization */
errorcode = graphresult(); /* an error occurred */
if (errorcode != grOk)
{
printf("Graphics error: %s\n", grapherrormsg(errorcode));
printf("Press any key to halt:");
getch();

exit(1); /* terminate with an error code */
}

midx = getmaxx() / 2;
midy = getmaxy() / 2;
setcolor(getmaxcolor());

/* draw arc */
arc(midx, midy, stangle, endangle, radius);

/* clean up */
getch();
closegraph();
return 0;
}


函数名: asctime
功 能: 转换日期和时间为ASCII码
用 法: char *asctime(const struct tm *tblock);
程序例:
#include <stdio.h>
#include <string.h>
#include <time.h>

int main(void)
{
struct tm t;
char str[80];

/* sample loading of tm structure */

t.tm_sec = 1; /* Seconds */
t.tm_min = 30; /* Minutes */
t.tm_hour = 9; /* Hour */
t.tm_mday = 22; /* Day of the Month */
t.tm_mon = 11; /* Month */
t.tm_year = 56; /* Year - does not include century */
t.tm_wday = 4; /* Day of the week */
t.tm_yday = 0; /* Does not show in asctime */
t.tm_isdst = 0; /* Is Daylight SavTime; does not show in asctime */

/* converts structure to null terminated
string */

strcpy(str, asctime(&t));
printf("%s\n", str);

return 0;
}



函数名: asin
功 能: 反正弦函数
用 法: double asin(double x);
程序例:
#include <stdio.h>
#include <math.h>

int main(void)
{
double result;
double x = 0.5;

result = asin(x);
printf("The arc sin of %lf is %lf\n", x, result);
return(0);
}



函数名: assert
功 能: 测试一个条件并可能使程序终止
用 法: void assert(int test);
程序例:
#include <assert.h>
#include <stdio.h>
#include <stdlib.h>

struct ITEM {
int key;
int value;
};

/* add item to list, make sure list is not null */
void additem(struct ITEM *itemptr) {
assert(itemptr != NULL);
/* add item to list */
}

int main(void)
{
additem(NULL);
return 0;
}



函数名: atan
功 能: 反正切函数
用 法: double atan(double x);
程序例:
#include <stdio.h>
#include <math.h>

int main(void)
{
double result;
double x = 0.5;

result = atan(x);
printf("The arc tangent of %lf is %lf\n", x, result);
return(0);
}


函数名: atan2
功 能: 计算Y/X的反正切值
用 法: double atan2(double y, double x);
程序例:
#include <stdio.h>
#include <math.h>

int main(void)
{
double result;
double x = 90.0, y = 45.0;

result = atan2(y, x);
printf("The arc tangent ratio of %lf is %lf\n", (y / x), result);
return 0;
}


函数名: atexit
功 能: 注册终止函数
用 法: int atexit(atexit_t func);
程序例:
#include <stdio.h>
#include <stdlib.h>

void exit_fn1(void)
{
printf("Exit function #1 called\n");
}

void exit_fn2(void)
{
printf("Exit function #2 called\n");
}

int main(void)
{
/* post exit function #1 */
atexit(exit_fn1);
/* post exit function #2 */
atexit(exit_fn2);
return 0;
}



函数名: atof
功 能: 把字符串转换成浮点数
用 法: double atof(const char *nptr);
程序例:
#include <stdlib.h>
#include <stdio.h>

int main(void)
{
float f;
char *str = "12345.67";

f = atof(str);
printf("string = %s float = %f\n", str, f);
return 0;
}


函数名: atoi
功 能: 把字符串转换成长整型数
用 法: int atoi(const char *nptr);
程序例:
#include <stdlib.h>
#include <stdio.h>

int main(void)
{
int n;
char *str = "12345.67";

n = atoi(str);
printf("string = %s integer = %d\n", str, n);
return 0;
}


函数名: atol
功 能: 把字符串转换成长整型数
用 法: long atol(const char *nptr);
程序例:

#include <stdlib.h>
#include <stdio.h>

int main(void)
{
long l;
char *str = "98765432";

l = atol(lstr);
printf("string = %s integer = %ld\n", str, l);
return(0);
}
您需要登录后才可以回帖 登录 | 加入易码

本版积分规则

Archiver|手机版|小黑屋|EMAX Studio

GMT+8, 2025-8-24 12:38 , Processed in 0.016609 second(s), 18 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表