C语言实现 十进制或十六进制字符 字典生成程序

没啥好说的 上程序,目前只写了1 2 3 12位字典生成,如需其他位数,可以自行补充。

#include 
#include 
#include 

int main()
{
     
    // 密码字符数组
    char str[17] = "0123456789ABCDEF";
    // char str[11] = "0123456789";
    // printf("len=%d\n", strlen(str));
    // 密码位数
    int num = 3;
    // 下标
    int arr[12] = {
     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};

    if(1 == num)
    {
     
        for(arr[0] = 0; arr[0] < strlen(str); arr[0]++)
        {
     
            printf("0x%c, ", str[arr[0]]);
        }
    }
    else if(2 == num)
    {
     
        for(arr[0] = 0; arr[0] < strlen(str); arr[0]++)
        {
     
            for(arr[1] = 0; arr[1] < strlen(str); arr[1]++)
            {
     
                printf("0x%c%c, ", str[arr[0]], str[arr[1]]);
            }
        }
    }
    else if(3 == num)
    {
     
        for(arr[0] = 0; arr[0] < strlen(str); arr[0]++)
        {
     
            for(arr[1] = 0; arr[1] < strlen(str); arr[1]++)
            {
     
                for(arr[2] = 0; arr[2] < strlen(str); arr[2]++)
                {
     
                    printf("0x%c%c%c, ", str[arr[0]], str[arr[1]], str[arr[2]]);
                    // printf("%c%c%c, ", str[arr[0]], str[arr[1]], str[arr[2]]);
                }
            }
        }
    }
    else if(12 == num)
    {
     
        for(arr[0] = 0; arr[0] < strlen(str); arr[0]++)
        {
     
        for(arr[1] = 0; arr[1] < strlen(str); arr[1]++)
        {
     
        for(arr[2] = 0; arr[2] < strlen(str); arr[2]++)
        {
     
        for(arr[3] = 0; arr[3] < strlen(str); arr[3]++)
        {
     
        for(arr[4] = 0; arr[4] < strlen(str); arr[4]++)
        {
     
        for(arr[5] = 0; arr[5] < strlen(str); arr[5]++)
        {
     
        for(arr[6] = 0; arr[6] < strlen(str); arr[6]++)
        {
     
        for(arr[7] = 0; arr[7] < strlen(str); arr[7]++)
        {
     
        for(arr[8] = 0; arr[8] < strlen(str); arr[8]++)
        {
     
        for(arr[9] = 0; arr[9] < strlen(str); arr[9]++)
        {
     
        for(arr[10] = 0; arr[10] < strlen(str); arr[10]++)
        {
     
        for(arr[11] = 0; arr[11] < strlen(str); arr[11]++)
        {
     
            printf("0x%c%c%c%c%c%c%c%c%c%c%c%c, ", 
            str[arr[0]], str[arr[1]], 
            str[arr[2]], str[arr[3]], 
            str[arr[4]], str[arr[5]], 
            str[arr[6]], str[arr[7]], 
            str[arr[8]], str[arr[9]], 
            str[arr[10]], str[arr[11]]);
        }
        }
        }
        }
        }
        }
        }
        }
        }
        }
        }
        }
    }

    return 0;
}

效果如下:

你可能感兴趣的:(C,C)