#include"stdio.h"
void tode(char*str,int d,int n)
{
int l=strlen(str);
int i;
for(i=0;i
{
if((str[i]<'A'&&str[i]-'0'>=n)||str[i]-'A'+10>=n)//一是字符串里只有数字;二是出现字母的情况,str[i]-'A'+10即该字母代表的十六进制的数值
{
printf("data error!");
exit(0);
}
else if(str[i]<'A')
d=d*n+str[i]-'0';
else
d=d*n+str[i]-'A'+10;
}
printf("decimalism number is %d",d);
}
int main()
{
char str[16];
int n,i;
int d=0;
printf("please input a number string:\n");
gets(str);
//puts(str);
printf("please input n(2 or 8 or 16)");
scanf("%d",&n);
tode(str,d,n);
return 0;
}
总结: char c='1'转化为int 类型时要注意,‘1’不等于1
ASCII码中‘0’=48,‘1’=49...
简单代码:
for (i = 0; i < strlen(str); i ++)
{
}