tc.c

来自「这是一个同样来自贝尔实验室的和UNIX有着渊源的操作系统, 其简洁的设计和实现易」· C语言 代码 · 共 70 行

C
70
字号
/* tc.c: find character not in table to delimit fields */# include "t.h"voidchoochar(void){				/* choose funny characters to delimit fields */	int	had[128], ilin, icol, k;	char	*s;	for (icol = 0; icol < 128; icol++)		had[icol] = 0;	F1 = F2 = 0;	for (ilin = 0; ilin < nlin; ilin++) {		if (instead[ilin]) 			continue;		if (fullbot[ilin]) 			continue;		for (icol = 0; icol < ncol; icol++) {			k = ctype(ilin, icol);			if (k == 0 || k == '-' || k == '=')				continue;			s = table[ilin][icol].col;			if (point(s)) 				while (*s) { 					if((unsigned char)*s < 128) 						had[(unsigned char)*s] = 1; 					s++; 				}			s = table[ilin][icol].rcol;			if (point(s)) 				while (*s) { 					if((unsigned char)*s < 128) 						had[(unsigned char)*s] = 1; 					s++; 				}		}	}				/* choose first funny character */	for (	    s = "\002\003\005\006\007!%&#/?,:;<=>@`^~_{}+-*ABCDEFGHIJKMNOPQRSTUVWXYZabcdefgjkoqrstwxyz"; 	    *s; s++) {		if (had[*s] == 0) {			F1 = *s;			had[F1] = 1;			break;		}	}				/* choose second funny character */	for (	    s = "\002\003\005\006\007:_~^`@;,<=>#%&!/?{}+-*ABCDEFGHIJKMNOPQRSTUVWXZabcdefgjkoqrstuwxyz"; 	    *s; s++) {		if (had[*s] == 0) {			F2 = *s;			break;		}	}	if (F1 == 0 || F2 == 0)		error("couldn't find characters to use for delimiters");	return;}intpoint(char *ss){	int s = (int)(uintptr)ss;	return(s >= 128 || s < 0);}

⌨️ 快捷键说明

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