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

📄 util.c

📁 一个与传统电子字典不同的字典
💻 C
字号:
/*  util.c - Auxiliary functions used by grinder*/#include <string.h>#include <malloc.h>#include "wngrind.h"static char *Id = "$Id: util.c,v 1.11 2005/01/31 20:03:36 wn Rel $";/* * Some basic lookup functions for converting the file names * and pointer symbols into integer values */int arraypos(char **a, char *x){    register int i;    for (i=0; a[i] != NULL; i++) {	if (*(a[i]) && !strcmp(a[i],x)) 	    return (i);    }    return (-1);}int filenum(char *x){    int i;    for (i=0; filelist[i].fname != NULL; i++) {	if (!strcmp(filelist[i].fname, x)) 	    return (i);    }    return (-1);}/* * A few extra string manipulation functions */char *strclone(char *x){    char *retval;        if (retval=(char *) malloc(strlen(x)+1))	strcpy(retval,x);    else {	fprintf(logfile, "Cannot malloc space to clone string\n");	exit(-1);    }    return(retval);}char *strupper(char *x){    static char temp[200];    register int i=0;        while (x[i]) {	temp[i]=(islower(x[i])?toupper(x[i]):x[i]);	i++;    }    temp[i]=0;    return(temp);}char *strlower(char *x){    static char temp[200];    register int i=0;        while (x[i]) {	temp[i]=(isupper(x[i])?tolower(x[i]):x[i]);	i++;    }    temp[i]=0;    return(temp);}char *PrintFileName(int x){    static char buf[256];    sprintf(buf, "%s", filelist[x].fname);    return(buf);}char *PrintPointer(Pointer p){    static char buf[100];    if (p->psensenum) {	if (p->pslite)	    if (p->pslite_sense)		sprintf(buf, "%s%d^%s%d,%s",			p->pword->label, p->psensenum,			p->pslite->label, p->pslite_sense,			ptrsymbols[p->ptype]);	    else		sprintf(buf, "%s%d^%s,%s",			p->pword->label, p->psensenum,			p->pslite->label, 			ptrsymbols[p->ptype]);	else	    sprintf(buf, "%s%d,%s",		    (p->phead ?		     strupper(p->pword->label) : p->pword->label),		    p->psensenum,		    ptrsymbols[p->ptype]);    } else  {	if (p->pslite) 	    if (p->pslite_sense)		sprintf(buf, "%s^%s%d,%s",			p->pword->label,			p->pslite->label, p->pslite_sense,			ptrsymbols[p->ptype]);	    else		sprintf(buf, "%s^%s,%s",			p->pword->label,			p->pslite->label, 			ptrsymbols[p->ptype]);	else	    sprintf(buf, "%s,%s",		    (p->phead ?		     strupper(p->pword->label) : p->pword->label),		    ptrsymbols[p->ptype]);    }    return(buf);}    char *PrintSynonym(Synonym s){    static char buf[256];    if (s->sensenum)	sprintf(buf, "%s%d%s",		(s->label ? s->label : s->word->label),		s->sensenum,		(s->adjclass ? adjclass[s->adjclass] : ""));    else	sprintf(buf, "%s%s",		(s->label ? s->label : s->word->label),		(s->adjclass ? adjclass[s->adjclass] : ""));    return(buf);}/*  Revision log:  $Log: util.c,v $  Revision 1.11  2005/01/31 20:03:36  wn  cleaned up and consolidated include files  Revision 1.10  2005/01/27 15:51:34  wn  *** empty log message ***  Revision 1.9  2003/09/18 19:05:00  wn  *** empty log message ***  Revision 1.8  1997/08/05 14:23:46  wn  added function prototypes, other small cleanups * Revision 1.7  1994/09/27  19:50:32  wn * renamed filename to filenum * * Revision 1.6  1994/09/27  19:48:07  wn * added filename function * * Revision 1.5  1992/08/20  13:52:50  wn * changed print functions * * Revision 1.4  92/08/20  10:19:08  wn * changed PrintPointer to handle new pointer syntax (cluster^satellite) *  * Revision 1.3  91/12/13  15:54:24  wn * no changes *  * Revision 1.2  91/09/25  14:16:46  wn * fixed bug with upper/lower case letters in words *  *  * Revision 1.1  91/09/11  14:48:02  wn * Initial revision * */

⌨️ 快捷键说明

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