1. itoa()函数介绍

itoa()函数是c语言中的一个库函数,功能是把整型数转换为相应进制的字符串。但是我在linux下使用这个函数时,编译链接时找不到这个函数,查找资料才发现linux下并没有这个函数。于是就想着自己实现一个itoa()函数。

该函数原型如下:

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

参数介绍:

  1. value: 相要转换的整型数
  2. string: 要输出的目标字符串的地址
  3. radix: 以什么进制转换为目标字符串,进制范围在2~36之间都可以

返回值:

转换成功则返回该目标字符串的地址,失败则返回NULL。

2. 代码实现

itao()函数实现方法1

char *my_itoa1(int value, char str[], int radix)
{char tmp_buff[33] = {0};char ch;int i = 0, j = 0;/* 超出转换进制范围,退出 */if ((radix < 2) || (radix > 36)){printf("radix err...\n");return NULL;}/* 不是10进制的负数,退出函数 */if ((value < 0) && (radix != 10)){printf("value err...\n");return NULL;}/* 10进制支持负数转换 */if ((value < 0) && (radix == 10)){value = -value;*str++ = '-';}/* 转换 */while (value){ch = value % radix;value /= radix;if (ch < 10)tmp_buff[i++] = ch + '0';else tmp_buff[i++] = ch + 'a' - 10;}   /* 逆序 */for (j=i-1; j>=0; j--){*str++ = tmp_buff[j];}*str = '\0';        // 加上结束符return str;
}

itao()函数实现方法2

char *my_itoa2(int value, char str[], int radix)
{const char fonts[] = "0123456789abcdefghijklmnopqrstuvwxyz";char tmp_buff[33] = {0};int i = 0, j = 0;/* 超出转换进制范围,退出 */if ((radix < 2) || (radix > 36)){printf("radix err...\n");return NULL;}/* 不是10进制的负数,退出函数 */if ((value < 0) && (radix != 10)){printf("value err...\n");return NULL;}/* 10进制支持负数转换 */if ((value < 0) && (radix == 10)){value = -value;*str++ = '-';}/* 转换 */while(value){tmp_buff[i++] = fonts[value % radix];value /= radix;}/* 逆序 */for(j=i-1; j>=0; j--){*str++ = tmp_buff[j];}    *str = '\0';return str;
}

测试验证代码

#include <stdio.h>int main(void)
{char str1[33] = {0};char str2[33] = {0};char str3[33] = {0};char str4[33] = {0};my_itoa1(123456, str1, 10);my_itoa1(0b11110000, str2, 2);my_itoa2(07654321, str3, 8);my_itoa2(0x123abcde, str4, 16);printf("str1 = %s\n", str1);printf("str2 = %s\n", str2);printf("str3 = %s\n", str3);printf("str4 = %s\n", str4);return 0;
}

编译运行后输出结果如下:

整型数转换为字符串的itoa()函数C语言实现相关推荐

  1. Python整型数与字符串相互转换

    Python中字符串转换为数值: str_num = '99' num = int(str_num) 整型数转换为字符串: num = 99 str_num = str(num)

  2. python整数转换字符串_使用Python中的str()函数将整数值转换为字符串

    python整数转换字符串 Given an integer value and we have to convert the value to the string using str() func ...

  3. c++语言转换为字符串函数,C++中整型转换为字符串类型

    本文主要介绍C++语言中,整型转换为字符串类型的方法. 1 使用to_string函数 在c++11标准中,我们可以使用to_string函数,将整型转换为字符串类型. 1.1 to_string函数 ...

  4. 整型数与字符串之间的转化

     atof(将字符串转换成浮点型数)  相关函数  atoi,atol,strtod,strtol,strtoul 表头文件  #include <stdlib.h> 定义函数  do ...

  5. muduo:高效整型转换为字符串

    muduo中有一段高效的整形转换为字符串的算法,这里记录一下(Efficient Integer to String Conversions, by Matthew Wilson) #include ...

  6. c语言字符串字节数函数,C语言字符,字符串,字节操作常用函数

    strlen 这个函数是在 string.h 的头文件中定义的 它的函数原型是 size_t strlen( const char ); size_t 是一个无符号整型,是这样定义的 typedef ...

  7. java取整公式,Java取整函数 四舍五入函数-Go语言中文社区

    简介 Math类中提供了5个与取整相关的函数,如下所示: static double ceil(double a):天花板函数,返回大于等于a的最小整数(但是以浮点数形式存储). static dou ...

  8. C/C++ itoa函数 - C语言零基础入门教程

    目录 一.itoa 函数简介 二.itoa 函数函数实战 三.猜你喜欢 零基础 C/C++ 学习路线推荐 : C/C++ 学习目录 >> C 语言基础入门 一.itoa 函数简介 在 st ...

  9. 一些值得记录的题目(将数组中相同的数据删除、判断n 阶方阵是否对称、寻找矩阵中的马鞍点、将前面各数顺序后移 m 位,最后 m 个数变成最前m 个数并输出、将一长整型数转换为十六进制,以字符串形式输出)

    1.设数组中的数据已经按照由小到大的顺序存放,请将数组中相同的数据删除,仅保留一个,然后以每行3个输出数组元素. #include<stdio.h> int main() {int arr ...

最新文章

  1. C Operator | and can also operate bool operands
  2. linux的编程命令,linux编程常用命令
  3. nginx配置文件讲解(二)
  4. 2022有哪些不容错过的后端技术趋势
  5. kindEditor富文本编辑器的工具栏设置
  6. c++实现解析文件路径
  7. ArcGIS实验教程——实验八:矢量数据拼接
  8. jQuery(爱前端)
  9. vue-环境变量和模式
  10. STL中map的使用要点
  11. 企业实战_20_MyCat使用HAPpoxy对Mycat负载均衡
  12. 2、Redis入门介绍
  13. SpringBoot项目运行jar包启动
  14. linux中fish脚本,FISH:Linux 下的一个智能易用的 Shell
  15. 基于auto.js的网课自动签到软件以及facerig控制摄像头内容及auto.js新手教学
  16. 高效工作的7种方法,可以让你的工作效率提高一倍,很实用
  17. Oracle使用函数达到drop table if exists
  18. Java黑皮书课后题第2章:2.16(几何:六边形面积)编写程序,提示用户输入六边形边长,然后显示它的面积
  19. 计算机课说话检查200字,上课说话检讨书200字
  20. 两个向量组线性相关是不是也能说成两个向量组等价 向量组等价 线性相关 向量组等价和矩阵等价的区别

热门文章

  1. (已更新)柒微自动发卡系统源码
  2. 调用Minitab软件应用于工业数据分析
  3. 《Python自然语言处理》-ch1-语料库
  4. 查找学校是北大的学生信息
  5. 【02】Java进阶:13-IO资源的处理、属性集、缓冲流、转换流、序列化、打印流、装饰设计模式、commons-io工具包
  6. jeecgboot:设置为缓存路由,切换页面,保留数据
  7. 3.基本的DOS命令
  8. centos 计算器_在Linux命令行中使用计算器的5个命令详解
  9. 关于带参数模糊查询的方法 like --转载自 寂寞沙洲(博客园)
  10. HCIE证书真的有用吗?