📄 404.htm
字号:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>CTerm非常精华下载</title>
</head>
<body bgcolor="#FFFFFF">
<table border="0" width="100%" cellspacing="0" cellpadding="0" height="577">
<tr><td width="32%" rowspan="3" height="123"><img src="DDl_back.jpg" width="300" height="129" alt="DDl_back.jpg"></td><td width="30%" background="DDl_back2.jpg" height="35"><p align="center"><a href="http://apue.dhs.org"><font face="黑体"><big><big>apue</big></big></font></a></td></tr>
<tr>
<td width="68%" background="DDl_back2.jpg" height="44"><big><big><font face="黑体"><p align="center"> ● UNIX网络编程 (BM: clown) </font></big></big></td></tr>
<tr>
<td width="68%" height="44" bgcolor="#000000"><font face="黑体"><big><big><p align="center"></big></big><a href="http://cterm.163.net"><img src="banner.gif" width="400" height="60" alt="banner.gif"border="0"></a></font></td>
</tr>
<tr><td width="100%" colspan="2" height="100" align="center" valign="top"><br><p align="center">[<a href="index.htm">回到开始</a>][<a href="393.htm">上一层</a>][<a href="405.htm">下一篇</a>]
<hr><p align="left"><small>发信人: ipxodi (乐乐~大地飞鹰), 信区: Hacker <br>
标 题: 密码生成器源程序 <br>
发信站: BBS 水木清华站 (Fri Dec 17 19:35:29 1999) <br>
#include <stdio.h> <br>
<br>
#include <stdlib.h> <br>
<br>
#include <ctype.h> <br>
<br>
#include <string.h> <br>
<br>
<br>
<br>
char charSet[8][256];//store all the charset <br>
<br>
int rulePtr ; <br>
<br>
char rule[256]= "\"ab[]\"[0-9][a-d]"; <br>
<br>
<br>
<br>
void init() <br>
<br>
<br>
{ <br>
<br>
write(2,"please input the rules:",26); <br>
<br>
scanf("%s",rule); <br>
<br>
} <br>
<br>
char splashtoAscii() <br>
<br>
{ <br>
<br>
char ch=0; <br>
<br>
rulePtr++; <br>
<br>
switch(rule[rulePtr]) { <br>
<br>
case 't':ch = '\t';break; <br>
<br>
case 'n':ch = '\n';break; <br>
<br>
<br>
case 'v':ch = '\v';break; <br>
<br>
case 'b':ch = '\b';break; <br>
<br>
case 'r':ch = '\r';break; <br>
<br>
case 'f':ch = '\f';break; <br>
<br>
case '\\':ch = '\\';break; <br>
<br>
case '\'': ch = '\'';break; <br>
<br>
default: <br>
<br>
if(isdigit(rule[rulePtr])) { <br>
<br>
ch = atoi(rule+rulePtr); <br>
<br>
for(;isdigit(rule[rulePtr]); rulePtr++ ); <br>
<br>
break; <br>
<br>
<br>
}else break; <br>
<br>
} <br>
<br>
return ch; <br>
<br>
} <br>
<br>
<br>
<br>
char getChar() <br>
<br>
{ <br>
<br>
char ch = rule[rulePtr]; <br>
<br>
switch(ch) { <br>
<br>
case '\\': <br>
<br>
return splashtoAscii(); <br>
<br>
<br>
case '[':case ']':case '-': <br>
<br>
printf("sorry, syntax error!\n"); <br>
<br>
return 0; <br>
<br>
default: <br>
<br>
rulePtr++; <br>
<br>
return ch; <br>
<br>
} <br>
<br>
} <br>
<br>
<br>
<br>
void dealBracket(int &bit)//'[]' <br>
<br>
{ <br>
<br>
<br>
rulePtr++;//rule[rulePtr] = '['; <br>
<br>
int charLocate=0; <br>
<br>
for(;rule[rulePtr];) { <br>
<br>
switch(rule[rulePtr]) { <br>
<br>
case '-': <br>
<br>
charLocate--; <br>
<br>
rulePtr ++; <br>
<br>
char start = charSet[bit][charLocate],end = get <br>
<br>
for(;start<=end;start++)charSet[bit][charLocate <br>
<br>
break; <br>
<br>
case '\\': <br>
<br>
<br>
default: <br>
<br>
charSet[bit][charLocate++] = getChar();//把这个 <br>
<br>
break; <br>
<br>
} <br>
<br>
if(rule[rulePtr]==']') { rulePtr++;break; } <br>
<br>
} <br>
<br>
bit++; <br>
<br>
} <br>
<br>
void dealString(int &bit) <br>
<br>
{ <br>
<br>
rulePtr ++;//skip the " <br>
<br>
<br>
for(;bit<8&&rule[rulePtr]&&rule[rulePtr]!='"';bit++) charSet[bit][0] <br>
<br>
} <br>
<br>
void dealIn(char * rule) <br>
<br>
{ <br>
<br>
int bit=0; <br>
<br>
for(rulePtr=0;rule[rulePtr];) { <br>
<br>
switch(rule[rulePtr]) { <br>
<br>
case '"': <br>
rulePtr ++;//skip the " <br>
for(;;bit++) { <br>
if(bit>=8) return; <br>
if(!rule[rulePtr]) return; <br>
if(rule[rulePtr]=='"') {rulePtr++;break;} <br>
charSet[bit][0] = rule[rulePtr++]; <br>
} <br>
break; <br>
case '\\':getChar();bit++;break; <br>
case '[':dealBracket(bit);break; <br>
default: printf("sorry, syntax error!\n");break; <br>
} <br>
if(bit>=8) break; <br>
} <br>
} <br>
void genCode(char *buff,int level) <br>
{ <br>
if(level>=8||charSet[level][0]==0) { <br>
buff[level]=0; <br>
printf("%s\n",buff); <br>
return; <br>
} <br>
for( int i=0;charSet[level][i]&&i<256;i++) { <br>
buff[level] = charSet[level][i]; <br>
genCode(buff,level+1); <br>
} <br>
} <br>
<br>
int main() <br>
{ <br>
char word[10]; <br>
memset(charSet,'\0',8*256); <br>
init(); <br>
dealIn(rule); <br>
genCode(word,0);//use charset <br>
return 1; <br>
} <br>
<br>
-- <br>
</small><hr>
<p align="center">[<a href="index.htm">回到开始</a>][<a href="393.htm">上一层</a>][<a href="405.htm">下一篇</a>]
<p align="center"><a href="http://cterm.163.net">欢迎访问Cterm主页</a></p>
</table>
</body>
</html>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -