⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 public.c

📁 sco unix 前台界面开发程序,采用UNIX中的词法分析器和语法分析器
💻 C
字号:
#include <stdio.h>#include <string.h>#include <stdlib.h>#include <stdarg.h>char *Trim(char *s){	char *e;	while (*s && (*s == ' ' || *s == '\t')) s++;	if (!*s) return s;	e = s + strlen(s) - 1;	while (e >= s && (*e == ' ' || *e == '\t')) e--;	*++e = 0;	return s;}void GetString(char *item, char *str, int pos, char delimiter){	int i, start = 0, k = 0, len = 0;	for(i=0; i < strlen(str); i++) {		if(str[i] == delimiter) {			k++, i++;			if( k == pos - 1 ) start = i;		}		if(k == pos-1) len++;		if(k == pos) break;	}	if(len == 0) item = NULL;	strncpy(item, &str[start], len);}void WriteLog(char *logname,char *fmt, ...){        va_list ap_list;        FILE    *fp;        va_start(ap_list, fmt);        fp = fopen(logname,"a+");        if (fp != NULL) {                vfprintf(fp, fmt, ap_list);                fflush(fp);                fclose(fp);        }        va_end(ap_list);}void ChineseAmt(char *str, double amt)/*金额小于十万亿*/{	int i,nflag=0,wflag=0;	char stramt[20],strtmp[10];	char *num[]={"零", "壹", "贰", "叁", "肆", "伍", "陆", "柒", "捌", "玖"};	char *unit[]={"万", "仟", "佰", "拾", "亿", "仟", "佰", "拾",	              "万", "仟", "佰", "拾", "元", "角", "分"};	if(amt < 0) amt = -amt;	memset(stramt,0,sizeof(stramt));	sprintf(stramt,"%015.0lf",amt*100);	for(i=0;i<strlen(stramt);i++)//处理至元位	{		if(stramt[i]!='0') {			if(4 < i && i < 8) wflag=1;//亿位至万位有数字			nflag=1;			strcat(str,num[stramt[i]-'0']);//写数字				strcat(str,unit[i]);//写单位		}		else if(nflag) {			/*亿、万、元位强制写出*/			if(i==4 || i==8 && wflag || i==12)				strcat(str,unit[i]);			/*下一位不为零,则写零*/			if(stramt[i+1] && stramt[i+1] != '0' )				strcat(str,num[0]);		}	}		if(stramt[14]=='0')//到角为止写整			strcat(str,"整");}void PrintAmt(char *str, double amt, int prec){	char buf[80], c;	int i, j, len, pos;	memset(buf, 0, sizeof(buf));	sprintf(buf, "%.*f", prec, amt);	len = strlen(buf);	for(i = 0, j = 0; i < len; i++, j++) {		str[j] = buf[i];		if(prec > 0) pos = len - i -prec - 5;		else pos = len - i -prec - 4;		if(pos >= 0  && (pos % 3 == 0)) str[++j] = ',';	}	str[j] = '\0';}int IsBlank(char *str){	while(*str && isspace(*str)) str++;	if(*str == '\0') return(1);	else return(0);}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -