由一个任意长度字符串生成唯一的32位整数

由一个任意长度字符串生成唯一的32位整数

    Lu核心库的输出函数StrToUniInt可将一个任意长度字符串转换成一个唯一的32位整数(只要没有对Lu进行重新初始化,该整数值就唯一);反过来,函数UniIntToStr接受一个32位整数,返回与之对应的字符串。

    例子:

仅需要以下支持文件:

1、头文件lu32.h。
2、导入库lu32.lib。
3、核心库lu32.dll。

[cpp]  view plain  copy
  1. #include   
  2. #include   
  3. #include   
  4. #include "lu32.h"  
  5.   
  6. #pragma comment( lib, "lu32.lib" )  
  7.   
  8. using namespace std;  
  9.   
  10. void main(void)  
  11. {  
  12.     char Str1[]="abcd";         //字符串  
  13.     char Str2[]="f(x,y)=x+y";   //字符串  
  14.     char *pStr;  
  15.     luVOID k1,k2,kk,i,j,k;  
  16.     clock_t t0;  
  17.   
  18.     if(!InitLu()) return;       //初始化Lu  
  19.     k1=StrToUniInt(Str1,strlen(Str1));  //由字符串Str1获得一个唯一的整数  
  20.     k2=StrToUniInt(Str2,strlen(Str2));  //由字符串Str2获得一个唯一的整数  
  21.     cout<<"k1="<"  k2="<
  22.     k1=StrToUniInt(Str1,strlen(Str1));  //由字符串Str1获得一个唯一的整数  
  23.     k2=StrToUniInt(Str2,strlen(Str2));  //由字符串Str2获得一个唯一的整数  
  24.     cout<<"k1="<"  k2="<
  25.     pStr=UniIntToStr(k1,kk);            //由整数k1获得字符串  
  26.     if(pStr) cout<
  27.     pStr=UniIntToStr(k2,kk);            //由整数k2获得字符串  
  28.     if(pStr) cout<
  29.   
  30.     t0=clock();                         //测试效率  
  31.     for(k=0;k<10;k++)  
  32.     {  
  33.         for(i=1;i<256;i++)  
  34.         {  
  35.             Str1[1]=i; Str2[3]=i;       //变换字符串  
  36.             for(j=1;j<256;j++)  
  37.             {  
  38.                 Str1[2]=j; Str2[4]=j;   //变换字符串  
  39.                 k1=StrToUniInt(Str1,strlen(Str1));  
  40.                 k2=StrToUniInt(Str2,strlen(Str2));  
  41.                 pStr=UniIntToStr(k1,kk);  
  42.                 pStr=UniIntToStr(k2,kk);  
  43.             }  
  44.         }  
  45.     }  
  46.     cout<<"耗时 "<<(clock()-t0)/1000.0<<" 秒。"<
  47.     cin.get();  
  48.     FreeLu();   //释放Lu  
  49. }  


结果:

[plain]  view plain  copy
  1. k1=4297048  k2=4299496  
  2. k1=4297048  k2=4299496  
  3. abcd  
  4. f(x,y)=x+y  
  5. 耗时 3.046 秒。  

你可能感兴趣的:(由一个任意长度字符串生成唯一的32位整数)