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

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

(0)

相关推荐

  • atoi和itoa函数的实现方法

    //atoi的实现 复制代码 代码如下: #include<iostream>using namespace std;int atio1(char *s){int sign=1,num=0;    if(*s=='-')        sign=-1;    s++;    while((*s)!='\0')    {        num=num*10+(*s-'0');        s++;    }       return num*sign;   } //itoa的实现 复制代码 代

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

    C语言中实现itoa函数的实例 一.原型: char *itoa( int value, char *string,int radix); 二.函数说明: value:欲转换的数据. string:目标字符串的地址. radix:转换后的进制数,可以是10进制.16进制等. 三.函数简单实现: #include <iostream> #include <string> using namespace std; char* My_itoa(int value,char str[],i

  • C语言中调用Swift函数实例详解

    C语言中调用Swift函数实例详解 在Apple官方的<Using Swift with Cocoa and Objectgive-C>一书中详细地介绍了如何在Objective-C中使用Swift的类以及如何在Swift中使用Objective-C中的类.在后半部分也介绍了如何在Swift中使用C函数,不过对于如何在C语言中使用Swift函数却只字未提.这里我就为大家分享一下如何在C语言中调用Swift函数. 我们首先要知道的是,所有Swift函数都属于闭包.其次,Swift函数的调用约定与

  • C语言实现字符串操作函数的实例

    C语言实现字符串操作函数的实例 在编写程序的过程中,我们经常使用到一些字符串函数,例如求字符串长度,拷贝字符串--,这些函数都在C标准库中存在,我们可以直接使用.但我们还需要掌握这些函数的实现方法,今天来看看一些常用的字符串操作函数的实现方法. 1.strlen strlen是用来求字符串长度的函数,字符串长度就是它所包含的字符个数. 今天给大家介绍三种实现strlen函数的方法 (1)定义一个计数器count //方式一:定义一个计数器 size_t my_strlen(const char

  • C语言模拟实现atoi函数的实例详解

    C语言模拟实现atoi函数的实例详解 atoi函数,主要功能是将一个字符串转变为整数,例如将"12345"–>12345.但在实现过程中,我们难免会因为考虑不够全面而漏掉比较重要的几点,今天就总结一下实现atoi函数需要注意的地方. 1.指针为NULL 2.字符串为空字符串 3.空白字符 4.正号与负号问题 5.溢出问题 6.异常字符处理 接下来看代码:(具体几种问题处理都在代码的注释中说明) #define _CRT_SECURE_NO_WARNINGS 1 #include

  • C语言实现时区转换函数的实例

    C语言实现时区转换函数的实例 时区转换函数 功能: 把时区1的时间转换成时区2的时间 参数: arg1 -- 输入时间 arg2 -- 时区1(也是arg1当前时间所在的时区) arg3 -- 时区2(要转换的时区的时间) 要求: 参数arg1类型可为timestamp 24个时区(由1-24表示) 在 pg_proc.h 中添加函数定义 src/include/catalog/pg_proc.h DATA(insert OID = 6668 ( timezone_convert PGNSP P

  • R语言中字符串的拼接操作实例讲解

    在R语言中 paste 是一个很有用的字符串处理函数,可以连接不同类型的变量及常量. 函数paste的一般使用格式为: paste(..., sep = " ", collapse = NULL) 其 中-表示一个或多个R可以被转化为字符型的对象:参数sep表示分隔符,默认为空格:参数collapse可选,如果不指定值,那么函数paste的返回值是自变量之间通过sep指定的分隔符连接后得到的一个字符型向量:如果为其指定了特定的值,那么自变量连接后的字符型向量会再被连接成一个字符串,之间

  • C语言中数据结构之链表归并排序实例代码

    C语言中数据结构之链表归并排序实例代码 问题 设有两个无头结点的单链表,头指针分别为ha,hb,链中有数据域data,链域next,两链表的数据都按递增排序存放,现要求将hb表归到ha表中,且归并后ha仍递增序,归并中ha表中已有的数据若hb中也有,则hb中的数据不归并到ha中,hb的链表在算法中不允许破坏. 源程序 #include <stdio.h> #include<stdlib.h> #define N1 6 /*链表La的长度*/ #define N2 6 /*链表Lb的

  • C语言中枚举与指针的实例详解

     C语言中枚举与指针的实例详解 总结一下, 定义枚举,用typedef enum关键字, 比如 typedef enum{Red,Green,Blue} Color3; 枚举到数值的转换,如果没有指定代表数值就是从0开始算, 比如 Color3 c=Red; printf("%d",c);会显示0, 除非指定 如typedef enum{Red=3,Green=5,Blue=10} Color3; 关于类型指针的定义, 定义的时候在变量名左边加*代表此变量只是一个空指针而已, 若需要赋

  • c语言中字符串分割函数及实现方法

    1.问题引入 自己在写一个linux下的模拟执行指令的时候,遇到了输入"cat a.c",要将该字符串分解成cat和a.c两个单独的字符串,虽然知道有strtok的存在,但是想自己尝试写一下,于是就自己写了一个,不过总是遇到这样或那样的问题,虽然最后调通了,不过确浪费了不少时间:后来作业交上去以后又仔细阅读了strtok函数,发现原来linux下已经改成strsep,所有在这里就写一下自己所走的过程. 2.自己写的字符串分割函数:用于分割指令,比如cat a.c最后会被分割成cat和a

  • Java语言中的自定义类加载器实例解析

    本文研究的主要是Java语言中的自定义类加载器实例解析的相关内容,具体如下. 自己写的类加载器 需要注意的是:如果想要对这个实例进行测试的话,首先需要在c盘建立一个c://myjava的目录.然后将相应的java文件放在这个目录中.并将产生的.clas文件放在c://myjava/com/lg.test目录下,否则是找不到的.这是要注意的.. class FileClassLoader : package com.lg.test; import java.io.ByteArrayOutputSt

随机推荐