温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

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

发布时间:2020-10-05 21:40:03 来源:脚本之家 阅读:280 作者:默伊清风 栏目:编程语言

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

一、原型:

char *itoa( int value, char *string,int radix);

二、函数说明:

  1. value:欲转换的数据。
  2. string:目标字符串的地址。
  3. radix:转换后的进制数,可以是10进制、16进制等。

三、函数简单实现:

#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; 
} 

如有疑问请留言或者到本站社区交流讨论,感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI