请问用c如何自动生成一定格式的字符串?
想生成一串urn格式的字符串格式为urn:uuid:8-4-4-4-12bytes,例如urn:uuid:98190dc2-0890-4ef8-ac9a-5940995e6119请问该如何实现? 在windows平台下面可以用UuidCreate()自动生成UUID:
http://msdn2.microsoft.com/en-us/library/aa379205(VS.85).aspx
UNIX平台的也有类似函数,不过n年没用完全忘掉了$汗$ 原帖由 cmh 于 2008-4-11 22:08 发表 http://www.dolc.de/forum/images/common/back.gif
在windows平台下面可以用UuidCreate()自动生成UUID:
http://msdn2.microsoft.com/en-us/library/aa379205(VS.85).aspx
UNIX平台的也有类似函数,不过n年没用完全忘掉了$汗$
这些我都知道,问题是我用的是tasking,不带这些函数:( 那就没办法了。这玩意一般靠MAC-ADD之类号称唯一的硬件号生成,在各个系统上不一样。要么去网上搜搜吧,说不定有开源的库可以用 const int SIZE_CHAR = 8;//生成8 + 1位C Style字符串
const char CCH[] = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
string RandomStrGenerator(int SIZE_CHAR)
{
srand((unsigned)time(NULL));
char ch = {0};
for (int i = 0; i < SIZE_CHAR; ++i)
{
int x = rand() % (sizeof(CCH) - 1);
ch = CCH;
}
return ch;
}
然后自己看,先生成8, 加个CHAR ´-´, 在生成4个,再加个CHAR ´-´。。。。usw......
[ 本帖最后由 shfaye 于 2008-4-14 15:12 编辑 ] UUID重要的是唯一性不是随机性, 需要确保在本机, 局域网, 甚至广域网内唯一 http://greenbytes.de/tech/webdav/rfc4122.html 原帖由 shfaye 于 2008-4-14 15:09 发表 http://www.dolc.de/forum/images/common/back.gif
const int SIZE_CHAR = 8;//生成8 + 1位C Style字符串
const char CCH[] = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
string RandomStrGenerator(int SIZE_CHAR)
{
srand(( ...
$送花$ $送花$ 原帖由 cmh 于 2008-4-14 16:31 发表 http://www.dolc.de/forum/images/common/back.gif
UUID重要的是唯一性不是随机性, 需要确保在本机, 局域网, 甚至广域网内唯一
事实上我只需区别几个设备,所以不需要生成严格意义上的UUID$汗$
页:
[1]
2