代码:
#include <stdio.h>
#include <string.h>
/*将字符串里的小写字母转换成大些VC里面有实现,本例程自己实现*/
char *strupr(char *s)
{
char *p;
p = s;
while (*s++ != '\0')
{
if (*s >= 97 && *s <= 102)
{
*s = *s - 32;
}
}
return p;
}
int main ()
{
long t1;
int i,n,t = 0,t3;
char a[100];
printf("请输入数字: \n");
scanf("%[^\n]",a);
strupr(a);
t3 = (int)strlen(a);
t1 = 0;
printf("请输入进制(2或8或16):\n");
scanf("%d",&n);
for (i = 0; i < t3; i ++)
{
if ((a[i] - '0' >= n && a[i] < 'A') || (a[i] - 'A' + 10 >= n))
{
printf("输入有误!!");
exit(0);
}
if (a[i] >= '0' && a[i] <= '9')
t = a[i] - '0';
else if (n >= 11 && (a[i] >= 'A' && a[i] <= 'A' + n - 10))
t = a[i] - 'A' + 10;
t1 = t1 * n + t;
}
printf("十进制形式是: %ld\n",t1);
return 0;
}
运行结果: