gpt4 book ai didi

c - 用C语言翻译JavaScript程序

转载 作者:行者123 更新时间:2023-12-04 09:53:25 25 4
gpt4 key购买 nike

我有一个javascript文件,我想将其转换为C语言,我做到了,但是运行时出错。
一切正常,直到函数返回int为止。
如果您对错误的出处有一些想法。
非常感谢。

#ifndef max
#define max( a, b ) ( ((a) > (b)) ? (a) : (b) )
#endif

char *substring(size_t start, size_t stop, const char *src, char *dst, size_t size)
{
int count = stop - start;
if ( count >= --size )
{
count = size;
}
sprintf(dst, "%.*s", count, src + start);
return dst;
}

int CrackLog(char log[], char pw[])
{
int tabc=3696619; //7
char tab[]=" azertyuiopqsdfghjklmwxcvbnAZERTYUIOPQSDFGHJKLMWXCVBN0123456789_$&#@";
int i,checksum;

checksum=tabc;
int nblog=strlen(log);
int nbpass=6;//6
int sum=1;
int n = max(nblog,nbpass);

for (i=0;i<n;i++)
{
char *to;
to = substring(i, i+1, log, to, sizeof to);
int index1=strcspn(tab, to)+10;

to = substring(i, i+1, pw, to, sizeof to);
int index2=strcspn(tab, to)+10;

sum=sum+(index1*n*(i+1))*(index2*(i+1)*(i+1));
}

if (sum==checksum) {
return 1;
}else
return 0;
}

原谅我的英语我很生气。
Mac飞

最佳答案

sprintf要求您自己分配内存。

尝试更改char *to;

char *to = (char*) malloc(sizeof(char)*(stop-start));

其中start和stop是子字符串的前两个参数

如果您尚未添加 stdlib.h,则可能需要

关于c - 用C语言翻译JavaScript程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2315159/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com