33,008
社区成员
发帖
与我相关
我的任务
分享
int S2P(char *s) {
unsigned int p = 0;
char c;
while (c = *s++) {
c -= 'A';
p *= 10;
p += c;
}
return p;
}
char *P2S(unsigned int p, char *buf) {
char *s = buf + 10;
char used[20], *t;
int i, j, c;
strcpy(used, "ABCDEFGHIJ");
*s-- = '\0';
for (i = 1; i < 10; i++) {
*s-- = c = 'A' + (p % 10);
p /= 10;
t = strchr(used, c);
if (t)
*t = '-';
}
for (i = 0; i < 10; i++)
if (used[i] != '-')
*s = used[i];
return buf;
}
int PCheck(int p) {
char tmp[20];
int q = S2P(P2S(p, tmp));
return p == q;
}