整型数转换为字符串的itoa()函数C语言实现
1. itoa()函数介绍
itoa()函数是c语言中的一个库函数,功能是把整型数转换为相应进制的字符串。但是我在linux下使用这个函数时,编译链接时找不到这个函数,查找资料才发现linux下并没有这个函数。于是就想着自己实现一个itoa()函数。
该函数原型如下:
char *itoa(int value, char *string, int radix);
参数介绍:
- value: 相要转换的整型数
- string: 要输出的目标字符串的地址
- 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语言实现相关推荐
- Python整型数与字符串相互转换
Python中字符串转换为数值: str_num = '99' num = int(str_num) 整型数转换为字符串: num = 99 str_num = str(num)
- python整数转换字符串_使用Python中的str()函数将整数值转换为字符串
python整数转换字符串 Given an integer value and we have to convert the value to the string using str() func ...
- c++语言转换为字符串函数,C++中整型转换为字符串类型
本文主要介绍C++语言中,整型转换为字符串类型的方法. 1 使用to_string函数 在c++11标准中,我们可以使用to_string函数,将整型转换为字符串类型. 1.1 to_string函数 ...
- 整型数与字符串之间的转化
atof(将字符串转换成浮点型数) 相关函数 atoi,atol,strtod,strtol,strtoul 表头文件 #include <stdlib.h> 定义函数 do ...
- muduo:高效整型转换为字符串
muduo中有一段高效的整形转换为字符串的算法,这里记录一下(Efficient Integer to String Conversions, by Matthew Wilson) #include ...
- c语言字符串字节数函数,C语言字符,字符串,字节操作常用函数
strlen 这个函数是在 string.h 的头文件中定义的 它的函数原型是 size_t strlen( const char ); size_t 是一个无符号整型,是这样定义的 typedef ...
- java取整公式,Java取整函数 四舍五入函数-Go语言中文社区
简介 Math类中提供了5个与取整相关的函数,如下所示: static double ceil(double a):天花板函数,返回大于等于a的最小整数(但是以浮点数形式存储). static dou ...
- C/C++ itoa函数 - C语言零基础入门教程
目录 一.itoa 函数简介 二.itoa 函数函数实战 三.猜你喜欢 零基础 C/C++ 学习路线推荐 : C/C++ 学习目录 >> C 语言基础入门 一.itoa 函数简介 在 st ...
- 一些值得记录的题目(将数组中相同的数据删除、判断n 阶方阵是否对称、寻找矩阵中的马鞍点、将前面各数顺序后移 m 位,最后 m 个数变成最前m 个数并输出、将一长整型数转换为十六进制,以字符串形式输出)
1.设数组中的数据已经按照由小到大的顺序存放,请将数组中相同的数据删除,仅保留一个,然后以每行3个输出数组元素. #include<stdio.h> int main() {int arr ...
最新文章
- C Operator | and can also operate bool operands
- linux的编程命令,linux编程常用命令
- nginx配置文件讲解(二)
- 2022有哪些不容错过的后端技术趋势
- kindEditor富文本编辑器的工具栏设置
- c++实现解析文件路径
- ArcGIS实验教程——实验八:矢量数据拼接
- jQuery(爱前端)
- vue-环境变量和模式
- STL中map的使用要点
- 企业实战_20_MyCat使用HAPpoxy对Mycat负载均衡
- 2、Redis入门介绍
- SpringBoot项目运行jar包启动
- linux中fish脚本,FISH:Linux 下的一个智能易用的 Shell
- 基于auto.js的网课自动签到软件以及facerig控制摄像头内容及auto.js新手教学
- 高效工作的7种方法,可以让你的工作效率提高一倍,很实用
- Oracle使用函数达到drop table if exists
- Java黑皮书课后题第2章:2.16(几何:六边形面积)编写程序,提示用户输入六边形边长,然后显示它的面积
- 计算机课说话检查200字,上课说话检讨书200字
- 两个向量组线性相关是不是也能说成两个向量组等价 向量组等价 线性相关 向量组等价和矩阵等价的区别