Компилировался и тестировался на Open Watcom 2 (C++) Генерирует случайные символы длинной байт в первом агрументе, или 2048 байт по умолчанию.
#include <stdio.h> #include <string.h> #include <stdlib.h> #include <time.h> const char blockChr[] = "AaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPpQqRrSsTtUuVvWwXxYyZz0123456789"; const int blockLen = sizeof(blockChr)-1; // sizeof("str") == ( 3 + null) int toInt(char* chars, int len, int def) { int i; for ( i=0 ; i<len ; i++) { if ((chars[i] < '0') || (chars[i] > '9')) return def; } return atoi(chars); } void main(int argc, char** argv) { int symbols = 2048; char* buffer; int i, t; if (argc > 1) { symbols = toInt(argv[1], strlen(argv[1]), symbols); } buffer = (char*) calloc(symbols+1, sizeof(char)); srand(time(0)); for ( i=0 ; i<symbols ; i++) { t = (rand() % blockLen); if (blockChr[t] == 0) { printf("%d\n", t); } buffer[i] = blockChr[t]; } buffer[symbols] = 0; printf("%s\n", buffer); free(buffer); }