char *random_string(char *str) { int i, length = 1 + sizeof *str; for(i = 0; i < length; ++i) { str[i] = random_letter(); } str[i] = '\0'; return str; }
static void random_string(int length, char *str) { int i; int char_type; for (i = 0; i < length; i++) { char_type = (int) (3 * (rand() / (RAND_MAX + 1.0))); switch (char_type) { case 0: str[i] = random_letter(0); break; case 1: str[i] = random_letter(1); break; case 2: str[i] = random_number(); break; default: str[i] = random_number(); break; } } }
void robot_name(struct mtwist_state *mt, char *buffer, int buflen) { static char *robot_patterns[] = { "LNLN", "LNLL", "LNNL", "LLNL", "LLNN", "LNNN" }; char *pattern = random_word(mt, robot_patterns, ARRAYSIZE(robot_patterns)); int i; char name[20]; memset(name, 0, sizeof(name)); for (i = 0; pattern[i]; i++) { switch (pattern[i]) { case 'L': name[i] = random_letter(mt); break; case 'N': name[i] = random_digit(mt); break; } } strncpy(buffer, name, buflen); }