В языке C нет встроенной стандартной функции для генерации случайной строки, и я видел удивительное количество людей, пытающихся это сделать.

Это довольно простая задача, которую можно выполнить в два основных шага;

  • Выбрать персонажа наугад
  • Сохраните этот символ в строке

Для этого нам нужно сначала создать набор символов, которые мы хотим использовать в нашей строке, для этого я решил написать функцию для возврата символа по заданному индексу;

char random_char(int index) {
char charset[] = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
return charset[index];
}

Идея здесь в том, что функция здесь получит случайное число, меньшее, чем длина набора символов, и вернет символ, расположенный по этому индексу.

После этого мы просто создадим цикл со счетчиком нужной длины строки, вызовем эту функцию внутри этого цикла, присваивая ей случайное число каждый раз, когда мы ее вызываем, и сохраняя каждый символ, который она возвращает, в строке. Все это можно легко сделать в рамках нашей основной функции.

srand(time(NULL));
char str[17];
int i, index;
for (i = 0; i < 16; i++) {
   index = rand() % 62;
   str[i] = random_char(index);
}
str[i] = '\0';//We do not forget '\0' for the string termination :D

Когда мы используем printf для получения вывода нашей строки, вывод должен быть примерно таким:

KnOORIoSfLTlpMP7

Вы можете найти полный код по адресу: https://github.com/dekaottoman/cse-workshop/tree/main/alphanumerical-code-generator.