📄 bbirdrk.c
字号:
#include <stdio.h>
#include <string.h>
#define NLETS 12
int nlet[NLETS] = {1, 1, 1, 1, 2, 3, 4, 5, 7, 0xc, 0xc, 0x33};
char sumdigs(char* str)
{
char buf[20];
int i = 0, n = 0;
while (str[i] != '\0')
n += str[i++] - '0';
if (n > 9) {
sprintf(buf, "%d", n);
return sumdigs(buf);
} else
return n + '0';
}
void makecode(char* name, char* comp, char* regcode)
{
char nmix[200];
char rc[20];
char buf[300];
int ln, lc;
int i, in, ic;
strupr(name);
strupr(comp);
ln = strlen(name);
lc = strlen(comp);
ic = (lc & 0xfffe) - 1;
in = 0;
i = 0;
while (ic > 0 || in < ln) {
if (ic > 0) {
nmix[i] = comp[ic];
ic -= 2;
i++;
}
if (in < ln) {
nmix[i] = name[in];
in += 2;
i++;
}
}
ic = 0;
in = (ln & 0xfffe) - 1;
while (ic < lc || in > 0) {
if (in > 0) {
nmix[i] = name[in];
in -= 2;
i++;
}
if (ic < lc) {
nmix[i] = comp[ic];
ic += 2;
i++;
}
}
for (i; i < 100; i++)
nmix[i] = ' ';
nmix[100] = '\0';
ic = 0;
for (i=0; i < NLETS; i++) {
for (in=0; in < nlet[i]; in++, ic++)
sprintf(buf + in*2, "%d", nmix[ic]);
rc[i] = sumdigs(buf);
}
rc[i] = '\0';
rc[i] = sumdigs(rc);
strncpy(regcode, rc, 4);
regcode[4] = '-';
strncpy(regcode+5, rc+4, 4);
regcode[9] = '-';
strncpy(regcode+10, rc+8, 5);
regcode[15] = '\0';
}
void main()
{
char name[200], comp[200], regcode[20];
printf("BowerBird v1.01 Registration Code generator (fOSSiL 1998)\n\n");
printf("Name : ");
gets(name);
printf("Company : ");
gets(comp);
if (strlen(name) + strlen(comp) < 8) {
printf("\nOops! Name and Company together have to be at least 8 chars\n");
exit(1);
}
makecode(name, comp, regcode);
printf("Reg Code : %s\n", regcode);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -