当前位置:网站首页>Randomly generate uuid using rand function

Randomly generate uuid using rand function

2022-08-11 05:46:00 FussyCat

  • 利用rand()函数,产生的随机数,用来构造uuid.
  • uuid格式为:
    %08x-%04x-%04x-%02x%02x-%02x%02x%02x%02x%02x%02x
    
  • 特别说明:
    must be added17random seed for row,to generate random numbers,否则,每次调用GenerateUuid(),获取到的uuidThe results are all the same value.
#include <string.h>
#include <string>
#include "time.h"

/* * 功能描述: 生成随机uuid * 参数描述: uuid字符串为36characters plus a terminator,字符串长度为37 * * uuid 长度: 8 - 4 - 4 - 4 - 12 * uuid 格式:"%08x-%04x-%04x-%02x%02x-%02x%02x%02x%02x%02x%02x" * 字符 序号: 0~3 3 4~5 5 6~7 7 8~9 9 10~15 */
int generate_uuid(char buf[37])
{
    
    const char *s = "89ab";
    char *p = buf;
    int pos;
    srand((unsigned int) time(NULL)); // 加入随机种子
    for(pos = 0; pos < 16; pos++) {
    
        int randNum = rand();
        int b = randNum % 255;
        switch(pos) {
    
            case 6:
                sprintf(p, "4%x", b % 15);
                break;
            case 8:
                sprintf(p, "%c%x", s[rand() % strlen(s)], b % 15);
                break;
            default:
                sprintf(p, "%02x", b);
                break;
        }
        p += 2;
        switch(pos) {
    
            case 3:
            case 5:
            case 7:
            case 9:
                *p++ = '-';
                break;
        }
    }
    *p = 0;
    fprintf(stdout, "uuid: %s", buf);
    return 0;
}

在这里插入图片描述
在这里插入图片描述

原网站

版权声明
本文为[FussyCat]所创,转载请带上原文链接,感谢
https://yzsam.com/2022/223/202208110512506516.html