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

 更新时间:2017年10月31日 10:51:38   作者:默伊清风  
这篇文章主要介绍了C语言中实现itoa函数的实例的相关资料,希望通过本文能帮助到大家,让大家实现这样的功能,需要的朋友可以参考下

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

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

您可能感兴趣的文章:

相关文章

  • C++通过TerminateProess结束进程实例

    C++通过TerminateProess结束进程实例

    这篇文章主要介绍了C++通过TerminateProess结束进程实例,是Windows应用程序设计中非常实用的技巧,需要的朋友可以参考下
    2014-10-10
  • c++ 指针与引用的区别介绍及使用说明

    c++ 指针与引用的区别介绍及使用说明

    指针与引用看上去完全不同(指针用操作符*和->,引用使用操作符.),但是它们似乎有相同的功能,感兴趣的朋友可以了解下啊,或许本文对你有所帮助,好了,话不多说,切入正题
    2013-01-01
  • C++根据传入的函数指针来解析需要的参数(推荐)

    C++根据传入的函数指针来解析需要的参数(推荐)

    C++可以根据传入的函数指针,获取自己需要的参数类型,然后根据参数源中获取需要的参数,具体实现方式大家参考下本文
    2018-05-05
  • C++基类指针和派生类指针之间的转换方法讲解

    C++基类指针和派生类指针之间的转换方法讲解

    今天小编就为大家分享一篇关于C++基类指针和派生类指针之间的转换方法讲解,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2019-04-04
  • 利用C/C++实现贪吃蛇游戏

    利用C/C++实现贪吃蛇游戏

    这篇文章主要为大家详细介绍了利用C/C++实现贪吃蛇游戏,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-10-10
  • C++超详细梳理lambda和function的使用方法

    C++超详细梳理lambda和function的使用方法

    C++在C11标准中引入了匿名函数,即没有名字的临时函数,又称之为lambda表达式.lambda表达式 实质上是创建一个匿名函数/对象,这篇文章主要介绍了lambda和function的使用方法
    2022-08-08
  • C++中类型推断(auto和decltype)的使用

    C++中类型推断(auto和decltype)的使用

    在C++11之前,每个数据类型都需要在编译时显示声明,在运行时限制表达式的值,但在C++的新版本之后,引入了 auto 和 decltype等关键字,本文就来介绍一下C++中类型推断(auto和decltype)的使用,感兴趣的可以了解一下
    2023-12-12
  • C++ Qt开发之LineEdit单行输入组件的用法详解

    C++ Qt开发之LineEdit单行输入组件的用法详解

    Qt 是一个跨平台C++图形界面开发库,利用Qt可以快速开发跨平台窗体应用程序,在Qt中我们可以通过拖拽的方式将不同组件放到指定的位置,实现图形化开发极大的方便了开发效率,本章将重点介绍LineEdit单行输入框组件的常用方法及灵活运用
    2023-12-12
  • c++ 形状类Shape(派生出圆类Circle和矩形类Rectangle)

    c++ 形状类Shape(派生出圆类Circle和矩形类Rectangle)

    通过C++方式,建立一个形状类Shape作为基类,派生出圆类Circle和矩形类Rectangle 求出面积并获取相关信息
    2020-11-11
  • C语言 结构体数组详解及示例代码

    C语言 结构体数组详解及示例代码

    本文主要介绍C语言 结构体数组,这里整理了相关资料及简单示例代码,以便大家学习参考,有兴趣的小伙伴可以看下
    2016-08-08

最新评论