我有一个格式为
的给定长度的所有字符串的列表例如长度3
000
100
200
.
.
900
A00
B00
.
.
Z00
a00
b00
.
.
z00
010
.
.
.
zzz
我正在尝试编写valueof(int pos, int len)
接受位置int作为参数并在该位置打印字符串(例如valueof(1,3)
打印000
和valueof(109,3)
打印{{1 }}
这是我尝试过的,但它不起作用:
k10
答案 0 :(得分:5)
因此,pos % 62
会在[0, 61]
之间返回一个数字。因此,当您执行(pos%62)-1
时,您会得到[-1, 60]
之间的数字。你可能不想要的。
你应该重写这一行:
string[i]=arry[(pos%62)-1];
为:
string[i] = arry[pos % 62];
答案 1 :(得分:2)
这是一个测试工具。我会在输入中添加一些边界检查,否则你可以超出数组。
#include <stdio.h>
#include <stdlib.h>
void valueof(int pos,int len)
...
int main (int argc, char **argv) {
valueof(atoi(argv[1]), atoi(argv[2]));
}
编译gcc vo.c -o vo
./vo 1 3
000
./vo 109 3
k10