首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

一个语法转换的有关问题

2012-02-08 
一个语法转换的问题这里有段c的代码,那个大哥可以帮忙转换成DELPHI的代码,谢谢了C# code//---------------

一个语法转换的问题
这里有段c的代码,那个大哥可以帮忙转换成DELPHI的代码,谢谢了

C# code
//---------------------------------------AnsiString __fastcall TForm1::EnCode(AnsiString string){char cas_str[]="9012345678abcdeABCDEFGHIJKLMNfghijklmnUVWXYZxyzuvwopqrstOPQRST";int cas_str_buffer[16];int cas_esi = 37;char src_str[128],dec_str[128]="";int k=0;int cas_eax,cas_edx;div_t x;unsigned int  i,j;cas_str_buffer[15]=25;cas_str_buffer[14]=35;cas_str_buffer[13]=182;cas_str_buffer[12]=236;cas_str_buffer[11]=43;cas_str_buffer[10]=41;cas_str_buffer[9]=53;cas_str_buffer[8]=18;cas_str_buffer[7]=226;cas_str_buffer[6]=215;cas_str_buffer[5]=24;cas_str_buffer[4]=117;cas_str_buffer[3]=35;cas_str_buffer[2]=201;cas_str_buffer[1]=52;cas_str_buffer[0]=17;strcpy(src_str,string.c_str());for ( i=0;i<strlen(src_str);i++){     for(j=0;j<strlen(cas_str);j++)       {         if (src_str[i]==cas_str[j]){             if(i<16)             cas_eax=cas_str_buffer[i];             else {             x=div(i,16);              cas_eax=cas_str_buffer[x.rem] ;                  }             cas_edx=cas_esi+cas_esi*2 ;             cas_eax=cas_eax^cas_edx;             cas_eax=cas_eax^k;             cas_eax=cas_eax+j;             x = div(cas_eax,62);             dec_str[i]=cas_str[x.rem];             cas_edx=x.rem ;             cas_esi=cas_esi^(cas_edx+9433);              break;                            }         }      if( dec_str[i]==NULL)          dec_str[i]=src_str[i];    k=k+5;}  string=dec_str;return string;}


[解决办法]
div_t是一个结构,是函数div_t div(int a, int b)的返回值,div_t中 quot表示a/b,而rem表示a%b。即商和余数。

c_str()函数是string对象的一个函数,它返回一个const char*指针,作用就是把string类型的变量转化为C字符串。
strcpy(src_str,string.c_str());这句的意思就是把string对象里的字符串copy到src_str中。虽然string和都是字符串类型的变量。但
因为strcpy的形参不接受string的类型,所以需要那么一个转换,你直接看成字符串复制就行咯。

热点排行