将用AB...Z表示的26进制字符串表示成任何进制,
#include<stdio.h>#include<string.h>
int main()
{
char arr1[20];
int dig;
while(scanf("%s %d",&arr1, &dig)!=EOF)
{
int strlen1, strlen2, arr2[100]={0}, i = 0; //arr2 used to store octal digit
long long cal = 0, temp = 1;
strlen1=strlen(arr1);
for(i = strlen1 - 1; i >= 0; i --) //calculate the 26 digit number into integer
{
cal += (arr1[i]-'A') * temp;
temp *= 26;
}
i = 0;
while(cal)//convert the integer into octal digit
{
arr2[i++]= cal % dig;
cal = cal / dig;
}
while(arr2[i] == 0)i--; // zero clearing
for(;i>=0;i--)
printf("%d",arr2[i]);
}
return 0;
}