我想制作一个自定义 ITOA 函数将大量数字放入小字符串中,这就是我编写的代码:
main(){
printf("itoa(2000000000,36)= '%s'",itoa(2000000000,36));
printf("itoa(36,36)= '%s'",itoa(36,36));
printf("itoa(37,36)= '%s'",itoa(37,36));
return 1;
}
stock itoa(val, base)
{
new buf[1024] = {0,...};
new i = 1023;
new LETTERZ[37] = {'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z',0};
for(; val && i; --i, val /= base)
buf[i] = LETTERZ[val % base];
return buf[i+1];
}
它基于此页面中的“C”代码:http ://www.jb.man.ac.uk/~slowe/cpp/itoa.html
但不知何故,这是输出:
[20:34:35] itoa(2000000000,36)='X' [20:34:35] itoa(36,36)='1' [20:34:35] itoa(37,36)='1 '
这是完全错误的,我不知道期望哪个输出,但 36 和 37 肯定不能是相同的输出,而且 2 000 000 000 不能只是“X”,因为 X 应该是 35,不是 2 000 000 000,ZZ 应该是 1295 我想...我想以十六进制系统为基础,但使用所有 alfabet 字母。
谁能告诉我这里有什么问题?
我正在使用一种称为 PAWN(也称为 SMALL)的无类型语言,后来我想在 VB.NET 中使用此代码