麻烦懂C的人帮忙把下面的C#翻译成C 谢谢 google 线性同余 伪随机数 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 #include<stdio.h>#include<string.h>#include<math.h>#define MAX_SIZE 255void removeChar(char* str,int index);char* getFileIDMixString(double seed);char* getFileIDMixString(double seed){ char mixed[MAX_SIZE]; memset(mixed,0,sizeof(mixed)); char source[]="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ/\\:._-1234567890"; int index=0; int len=strlen(source); for(int i=0,j=0;i<len;i++) { seed=(int)(seed*211+30031)%65536; index=(int)floor(seed/65536*strlen(source)); mixed[j++]=source[index]; removeChar(source,index); } return mixed;}void removeChar(char* str,int index){ int i,j; for(i=0;str[i]!='\0';i++) { if(i==index) { for(j=i+1;str[j]!='\0';j++) { str[j-1]=str[j]; } str[j-1]='\0'; break; } }} #include<stdio.h>#include<stdlib.h>#include<string.h>#include<math.h>#define MAX_SIZE 255 int splitString(char* str,char** arr,const char* delim);void removeChar(char* str,int index);char* getFileIDMixString(double seed);char* getFileID(const char* fileid, double seed);int splitString(char* str,char** arr,const char* delim){ if(str==NULL) return 0; int i=0; char* p=strtok(str,delim); while(p!=NULL) { arr[i++]=p; p=strtok(NULL,delim); } return i;}void removeChar(char* str,int index){ if(str==NULL) return; int len=strlen(str); if(index<0||index>len-1) return; if(index==len-1) { str[index]='\0'; return; } int i; for(i=index+1;str[i]!='\0';i++) { str[i-1]=str[i]; } str[i-1]='\0';}char* getFileIDMixString(double seed){ char* mixed=(char*)malloc(sizeof(char)*MAX_SIZE); char source[]="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ/\\:._-1234567890"; int index=0; int len=strlen(source); int i,j; for(i=0,j=0;i<len;i++) { seed=(int)(seed*211+30031)%65536; index=(int)floor(seed/65536*strlen(source)); mixed[j++]=source[index]; removeChar(source,index); } mixed[j++]='\0'; return mixed;}char* getFileID(char* fileid,double seed){ char* realId=(char*)malloc(sizeof(char)*MAX_SIZE); char* mixed=getFileIDMixString(seed); char* ids[MAX_SIZE]; int n=splitString(fileid,ids,"*"); int idx,i,j; for(i=0,j=0;i<n-1;i++) { idx=atoi(ids[i]); realId[j++]=mixed[idx]; } realId[j++]='\0'; return realId;}int main(){ char ss[]="7*8*9"; printf("%s\n",getFileID(ss,8)); return 0;} GridView点击行变色 c#winform中ZedGraphControl的清空问题 c# 和网页交互问题 SQL 语句问题 vs升级失败 C#调用API GetThreadTimes方法 不成功 傻瓜学asp.net 无法加载dll文件 关于初级程序员的考试 水晶报表安装时没有ado.net选项 Studio 2010 的MSDN 那里有下载 关于listview的问题
#include<stdio.h>
#include<string.h>
#include<math.h>#define MAX_SIZE 255void removeChar(char* str,int index);
char* getFileIDMixString(double seed);char* getFileIDMixString(double seed)
{
char mixed[MAX_SIZE];
memset(mixed,0,sizeof(mixed));
char source[]="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ/\\:._-1234567890";
int index=0;
int len=strlen(source);
for(int i=0,j=0;i<len;i++)
{
seed=(int)(seed*211+30031)%65536;
index=(int)floor(seed/65536*strlen(source));
mixed[j++]=source[index];
removeChar(source,index);
}
return mixed;
}void removeChar(char* str,int index)
{
int i,j;
for(i=0;str[i]!='\0';i++)
{
if(i==index)
{
for(j=i+1;str[j]!='\0';j++)
{
str[j-1]=str[j];
}
str[j-1]='\0';
break;
}
}
}
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<math.h>#define MAX_SIZE 255
int splitString(char* str,char** arr,const char* delim);
void removeChar(char* str,int index);
char* getFileIDMixString(double seed);
char* getFileID(const char* fileid, double seed);int splitString(char* str,char** arr,const char* delim)
{
if(str==NULL) return 0;
int i=0;
char* p=strtok(str,delim);
while(p!=NULL)
{
arr[i++]=p;
p=strtok(NULL,delim);
}
return i;
}void removeChar(char* str,int index)
{
if(str==NULL) return;
int len=strlen(str);
if(index<0||index>len-1) return;
if(index==len-1)
{
str[index]='\0';
return;
}
int i;
for(i=index+1;str[i]!='\0';i++)
{
str[i-1]=str[i];
}
str[i-1]='\0';
}char* getFileIDMixString(double seed)
{
char* mixed=(char*)malloc(sizeof(char)*MAX_SIZE);
char source[]="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ/\\:._-1234567890";
int index=0;
int len=strlen(source);
int i,j;
for(i=0,j=0;i<len;i++)
{
seed=(int)(seed*211+30031)%65536;
index=(int)floor(seed/65536*strlen(source));
mixed[j++]=source[index];
removeChar(source,index);
}
mixed[j++]='\0';
return mixed;
}char* getFileID(char* fileid,double seed)
{
char* realId=(char*)malloc(sizeof(char)*MAX_SIZE);
char* mixed=getFileIDMixString(seed);
char* ids[MAX_SIZE];
int n=splitString(fileid,ids,"*");
int idx,i,j;
for(i=0,j=0;i<n-1;i++)
{
idx=atoi(ids[i]);
realId[j++]=mixed[idx];
}
realId[j++]='\0';
return realId;
}int main()
{
char ss[]="7*8*9";
printf("%s\n",getFileID(ss,8));
return 0;
}