源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

C语言中实现itoa函数的实例

  • 时间:2022-04-17 10:30 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:C语言中实现itoa函数的实例
[b]C语言中实现itoa函数的实例[/b] [b]一、原型:[/b]
char *itoa( int value, char *string,int radix);
[b]二、函数说明:[/b] [list=1] [*]value:欲转换的数据。[/*] [*]string:目标字符串的地址。[/*] [*]radix:转换后的进制数,可以是10进制、16进制等。[/*] [/list] [b]三、函数简单实现:[/b]
#include <iostream> 
#include <string> 
using namespace std; 
 
char* My_itoa(int value,char str[],int radix) 
{ 
  char temp[33]; 
  char *tp = temp; 
  int i; 
  unsigned v; 
  int sign; 
  char *sp; 
  if(radix > 36 || radix < 1) 
    return 0; 
  sign = (radix == 10 && value < 0); //十进制负数 
  if(sign) 
    v = -value; 
  else 
    v = (unsigned)value; 
  while(v || tp == temp)       //转化操作 
  { 
    i = v % radix; 
    v = v / radix; 
    if(i < 10) 
      *tp++ = i + '0'; 
    else 
      *tp++ = i + 'a' - 10; 
  } 
  if(str == 0) 
    str = (char*)malloc((tp - temp) + sign + 1); 
  sp = str; 
  if(sign)   //是负数的话把负号先加入数组 
    *sp++ = '-'; 
  while(tp > temp) 
    *sp++ = *--tp; 
  *sp = 0; 
 
  return str; 
} 
 
int main() 
{ 
  long int num; 
  int radix;   //输入的几进制表示 
  char str[256]; 
  cout<<"请输入整数和进制数:"; 
  cin>>num>>radix; 
  My_itoa(num,str,radix); 
  cout<<"整数转换为字符串后:"; 
  cout<<str<<endl; 
 
  return 0; 
} 
如有疑问请留言或者到本站社区交流讨论,感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部