- 论坛徽章:
- 1
|
前半部分是替换表,后半部分是用替换表替换了的结果
按替换表逆向替换回去,就是一般的C程序。
volatile 私有
unsigned 无符号
register 寄存器
continue 继续
typedef 类型定义
fprintf 格式打印到文件
default 默认
switch 开关
struct 结构
static 静态
sscanf 格式扫描
sizeof 尺寸
signed 符号
return 返回
printf 格式打印到控制台
extern 外部
double 双倍
calloc 清零内存分配
while 当
union 联合
short 短
float 浮动
const 常数
break 断开
void 一般
main 主函数
long 长
goto 去到
free 释放分配内存
exit 退出
enum 穷举
else 否则
char 字符
case 情况
auto 自动
mop 主操作
int 整数
fp5 文描5
fp2 文描2
fp1 文描1
for 对于
nb 恩必
mb 姆必
kb 开必
if 如果
ib 艾必
do 做
t 梯
s 艾斯
p 屁
k 开
j 孑
i 啊艾
#define DEBUG 0
#include <ctype.h>
#include <stdio.h>
#include <sys/types.h>
#include <stdlib.h>
字符 helpstr[]={"\
Usage:\n\
stdan [s_file|-] [out_file|-] [-dnnnn] [-sfile.nam] [-f] [-cx]\n\
-m for data value\n\
-n for data value\n\
-g for glag\n\
stdan -h\n\
stdan -?\n\
"};
#define MAXSAM 20
FILE *文描1;
FILE *文描2;
FILE *文描5;
整数 姆必 = 0; /* value */
整数 恩必 = 0; /* value */
整数 开必 = 0; /* value */
整数 flagg = 0; /* flag */
主函数(ac,av)
整数 ac;
字符 *av[];
{ 整数 啊艾,孑,开, *sample;
字符 *屁, *si, ch;
字符 *agbuf[MAXSAM];
整数 艾必;
整数 *艾斯, *梯;
孑 = 0;
对于(啊艾 = 1; 啊艾 < ac; 啊艾++)
{ 屁 = av[啊艾];
如果(*屁 != '-')
noption:{ agbuf[孑++] = av[啊艾];
}
否则
{ 开关(*(屁 + 1))
{ 情况 0: 去到 noption; /* for '-' */
情况 'n':
格式扫描(*(屁+2)? 屁+2 :av[++啊艾],"%d", &恩必);
断开;
情况 'k':
格式扫描(*(屁+2)? 屁+2 :av[++啊艾],"%d", &开必);
断开;
情况 'g':
si = 屁 + 1;
当(ch = *si++)
{ 开关(ch)
{
情况 'g':
flagg = 1;
断开;
默认:格式打印到文件(stderr,"不支持的单字母选项!\n");
格式打印到文件(stderr,"%s\n",helpstr);
退出(1);
}
}
断开;
默认:格式打印到文件(stderr,"不支持的选项!\n");
情况 '?':
情况 'h':
格式打印到文件(stderr,"%s\n",helpstr);
退出(1);
}
}
}
/* fprintf(stderr,"j= %x\n",j); */
如果(孑==1)
{ 格式打印到文件(stderr, "要指定样品,比如:2 3 4 5\n");
退出(1);
}
如果(开必==0)
{ 格式打印到文件(stderr, "必须指定分组,比如 -k3\n");
退出(1);
}
如果(恩必==0)
{ 格式打印到文件(stderr, "必须指定每组成员数,比如 -n4\n");
退出(1);
}
姆必 = 开必 * 恩必;
梯 = (整数 *)清零内存分配(姆必, 尺寸(整数));
如果(孑 > 姆必) 孑 = 姆必;
对于(啊艾=0; 啊艾 < 孑; 啊艾++)
{ 格式扫描(agbuf[啊艾], "%d", &艾必);
梯[啊艾] = 艾必;
}
如果(梯 == 0)
{ 格式打印到控制台("Out of memory, in top layer!\n");
退出(1);
}
艾斯 = &梯[0];
主操作(艾斯, 姆必, 恩必);
释放分配内存(梯);
}
/* End of file */ |
|