cprc/src/namegen.c

54 lines
1.3 KiB
C

#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define NICKLIM 36
int main(int argc, char argv[]) {
srandom(time(NULL));
char name[NICKLIM+1];
if (argc==1) {
fprintf(stderr,"Please enter your occupied nickname: \n");
char c;
int pos=0;
while ((c=getchar())!='\n' && pos<NICKLIM+1) {
name[pos++] = c;
}
name[pos] = '\0';
} else {
fprintf(stderr,"You have to send your username via standard input.\n");
return 2;
}
if (name[0]=='\0') {
fprintf(stderr,"No name given, generating one...\n");
int c, len;
for (c=0, len=15; c<len; c++) {
unsigned int uppercase=random()%2;
char start = 'a';
if (uppercase) {
start = 'A';
}
name[c] = start + (random()%26);
}
name[++c] = '\0';
}
for (int c=0; c<NICKLIM+1 && name[c]!='\0'; c++) {
if (random()%2) {
switch (name[c]) {
case 'o': case 'O': name[c] = '0'; break;
case 'i': case 'I':
case 'l': case 'L': name[c] = '1'; break;
case 'z': case 'Z': name[c] = '2'; break;
case 'e': case 'E': name[c] = '3'; break;
case 'a': case 'A': name[c] = '4'; break;
case 's': case 'S': name[c] = '5'; break;
case 'g': case 'G': name[c] = '6'; break;
case 't': case 'T': name[c] = '7'; break;
case 'b': case 'B': name[c] = '8'; break;
}
}
}
fprintf(stderr, "Randomly generated name: ");
printf("%s\n", name);
return 0;
}