atoi() 与 itoa()函数的内部实现
C语言提供了几个标准库函数,可以将任意类型(整型、长整型、浮点型等)的数字转换为字符串。以下是用itoa()函数将整数转 换为字符串的一个例子:
atoi 把字符串转换成整型数
itoa 把一整数转换为字符串
#include "stdio.h"
#include "ctype.h"
#include "stdlib.h"
/*
Converts a character string into an int or long
将一个字符串转化为整数
*/
int my_atoi(char s[])
{
int i,n,sign;
for(i=0;isspace(s[i]);i++); //跳过空白
sign=(s[i]=='-')?-1:1;
if(s[i]=='+'||s[i]==' -') //跳过符号位
i++;
for(n=0;isdigit(s[i]);i++)
n=10*n+(s[i]-'0'); //将数字字符转换成整形数字
return sign*n;
}
/*
Converts an int or long into a character string
将一个整数转化为字符串
*/
void my_itoa(int n,char s[])
{
int i,j,sign;
if((sign=n)<0) //记录符号
n=-n; //使n成为正数
i=0;
do{
s[i++]=n%10+'0'; //取下一个数字
}while((n/=10)>0); //循环相除
if(sign<0)
s[i++]='-';
s[i]='\0';
for(j=i-1;j>=0;j--) //生成的数字是逆序的,所以要逆序输出
printf("%c",s[j]);
}
void main()
{
int n;
char str[100];
my_itoa(-123,str);
printf("\n");
printf("%d\n",my_atoi("123"));
system("pause");
}
atoi() 与 itoa()函数的内部实现相关推荐
- atoi和itoa函数实现
atoi函数是C语言库提供的,是把字符串转换成整型数和把字符串转换成整型数.而itoa函数是广泛应用的非标准C语言扩展函数,由于它不是标准C语言函数,所以不能在所有的编译器中使用,它的功能是把一整数转 ...
- atoi() 与 itoa()函数用法
itoa()函数的原型为: char *itoa( int value, char *string,int radix); itoa()函数有3个参数:第一个参数是要转换的数字,第二个参数是要写入转换 ...
- c++实现atoi()和itoa()函数(字符串和整数转化)
(0) c++类型所占的字节和表示范围 c 语言里 类型转换那些事儿(补码 反码) 应届生面试准备之道 最值得学习阅读的10个C语言开源项目代码 一:起因 (1)字符串类型转化为整数型(Integer ...
- 【造轮子】实现 atoi、itoa 函数
1. atoi 函数 1.1 函数简介 atoi 函数为 C 库函数之一,用于把字符串转换为对应的整形十进制数字. 原型:int atoi (const char* str); 所属头文件:<s ...
- C语言—atoi()、itoa()函数以及my_atoi()、my_itoa()函数详解
1 atoi()函数 atoi函数是将字符串转换成整数.头文件<stdlib.h> 注意: 1.数字字符前有空格存在则跳过. 2.数字字符前有+.-号作为整数的正负号处理. 3.数字字符前 ...
- 字符串的总结(atoi和itoa函数的实现)
目录: 一.常见的字符串函数(strlen,strcpy,strcat,strcmp) 二.关于atoi函数的实现 三.关于itoa函数的实现 一.常见字符串的函数 (strlen,strcpy,st ...
- 【C语言】 itoa()函数 和 atoi()函数(字符串与整型数的转换)
文章目录 一.atoi()函数 二.itoa()函数 三.利用atoi() 和itoa()函数进行进制转换 一.atoi()函数 atoi()是C语言中的字符串转换成整型数的一个函数 (1)[头文件] ...
- vc++ C函数atoi和itoa的用法总结(转载)
atoi C语言库函数名: atoi 功 能: 把字符串转换成整型数. 名字来源:array to integer 的缩写. 函数说明: atoi()会扫描参数nptr字符串,如果第一个字符不是数字也 ...
- Linux C编程 itoa()函数 atoi()函数
今天在Ubuntu下编程,发现Linux内核中只有atoi()函数,被包含在stdlib.h头文件中,而没有itoa()函数,不过,itoa()函数的功能可以用sprintf()函数代替.如 int ...
最新文章
- 微信小程序惩治“老赖” 河北高院“老赖地图”上线
- 用于CUDA FFT的PyTorch包装器pytorch-fft
- 从客户端中检测到有潜在危险的 Request.Form 值
- Flex入门搭建j2EE开发环境
- 深度学习 500 问!一份火爆 GitHub 的面试手册
- Innobackupex实现mysql在线搭建master-slave主从复制
- 动态规划套路:最大子数组和
- 一文了解类别型特征的编码方法
- python高并发架构_python高并发的解决方案
- git远程分支修改名字
- kettle连接数据mysql查_Kettle连接MySQL报错的解决方法
- Mybatis-generator,自动生成文件.问题及解决
- 3说明书_怎么才能做好产品说明书翻译?知行翻译公司总结了3点
- springcloud与jdk版本问题
- atitit.php 流行框架 前三甲为:Laravel、Phalcon、Symfony2 attilax 总结
- Semantic-UI的React实现(一):架构介绍
- 出了雷军周鸿祎,湖北却消失在中国互联网版图
- 【Typora Emoji 图标】
- 听故事的男同学,没了666
- OpenTracing-Java实现的灵魂十问