C语言,①写一个把数字字符串转换成十进制整数的函数,它只有一个字符数组参数?

②为这个函数增加一个表示进制“基数”的参数,例如2进制,10进制,16进制等。
(②才是最需要解决的问题)

#include<stdio.h>

int str2int(char s[],int r)//把r进制的字符串转换为十进制数

{int i,n=0;

 for(i=0;s[i];i++)

   {if(s[i]>='0'&&s[i]<='9')n=n*r+s[i]-'0';

    else 

{if(s[i]>='a'&&s[i]<='z')

   s[i]-=32;

if(s[i]>='A'&&s[i]<='Z')

   n=n*r+s[i]-55;    

 }

 return n;

}

int main()

{ char s[40];

  int r,x;

  printf("请输入要转换的数字串和原先的进制数:\n");

  scanf("%s%d",s,&r);

  x=str2int(s,r);

  printf("十进制数=%d\n",x);

  return 0;

}

温馨提示:答案为网友推荐,仅供参考
相似回答