1、c语言编程技巧/*从键盘中读取字符 功能:按下普通键时,返回其 ASCII码 扫描码 CODE=0*/ int INKEY(int *code) int m; while(!bioskey(1)/*可加入无按键时代码*/; *code=bioskey(0); m=*code*255; if(!m) m=*code8; *code=*code return m; /*获取机器日期*/ int DATE(char *s,char type) char dat30; int num; struct tm *tblock; time_t t; t=time(NULL); tblock=localtim
2、e( strcpy(dt,asctime(tblock); strcpy(s,“); switch(type) case N: num=(*tblock).tm_year+1900; itoa(num,s,10); break; case Y: num=(*tblock).tm_mon+1; itoa(num,s,10); break; case R: num=(*tblock).tm_mday; itoa(num,s,10); break; case S: strcpy(dt,asctime(tblock); MID(s,dt,12,8); break; return num; /*将浮点数
3、转化为字符串*/ /* 参数说明 data:需转换的浮点数;s:输出字符串;len:转换后的长度*/ void f_to_s(double data,char *s,int len) int dec,sign,i; char *s1,s2100,s3100; s1=0; s20=0; s30=0; s1=fcvt(data,len, if (!sign MID(s3,s1,1,dec); strcpy(s,“+“); strcat(s,s3); strcat(s,“.“); strcat(s,s2); if (sign strcpy(s,“-“); MID(s3,s1,1,dec); strc
4、at(s,s3); strcat(s,“.“); strcat(s,s2); if (!sign strcat(s,s1); if (sign strcat(s,s1); if (!sign /*清除屏幕*/ void CLSXY(int color,int x,int y,int xl,int yl) int x1,y1; union REGS r; if(x25|x180) return; r.h.ah=6; /*子功能号*/ r.h.al=0; /*滚动行数*/ r.h.ch=y; r.h.cl=x; r.h.dh=y1; r.h.dl=x1; r.h.bh=color*16; int8
5、6(16, /*显示时间*/ void display_time(int color,int back_color,int y,int x) static char oldtime9=“; char newtime9; if(yi) m=i; p=m-n+1; if(pl) n=l; for(i=0;i*d+=*s+; *d=0; /*取左字符串*/ void LEFT(char *d,char *s,int n) int i,l; i=0; l=strlen(s); if(nl) n=l; for(i=0;idi=si; dn=0; /*向文件写数据*/ void WRITE_STR(cha
6、r *s,FILE *fp) char c=10; if(!fp) return; fputs(s,fp); fputc(c,fp); /*取右字符串*/ void RIGHT(char *dest,char *source,int num) int i,j; if (num30000) i=30000; if (i0) for(i=l;i-1;i-) si+n=si; for(i=0;i /*字符串居中*/ void MOVE_MIDDLE(char *s,int wide) int i,l,n; l=strlen(s); if (widel) wide=wide-1; n=wide/2;
7、wide=wide-n; for(i=l;i-1;i-) si+n=si; for(i=0;ifor(i=0;isl+n+i=0; /*删除子字符串*/ void Delete_SubString(char *source,int start,int num) int i,l; l=strlen(source); if (numl-start+1|num=-1) num=l-start+1; if (start1) return; for(i=start;isourcei-1=sourcei+num-1; /*查找指定字符串*/ int INSTR(int n,char *source,cha
8、r *dest) int i,j,k1,k2,p; int start=0; if (n=0) n=1; k1=strlen(source); k2=strlen(dest); if (n0) char s100; n=-n; MID(s,source,n,k2); if (strcmp(s,dest) return 0; return n; if (k1-n+1for(i=n-1;i p=0; for(j=0;jif (sourcei+j!=destj) break; else p+; if (p=k2) start=i+1; break; return start; /*产生空格*/ void SPACE(char *s,int n) int i; if (n0) n=0; for(i=0;i*s=0; /*产生字符串*/ void STRING(int n,char *s1,char *s2) int i; if (n0) n=0; s10=0; for(i=1;i=n;i+) strcat(s1,s2); /*砍掉字符串左边空格*/ void CUT_LEFT_SPACE(char *s)