C函数atoi,itoa的实现代码

atoi函数和itoa函数C代码实现 一、atoi函数实现 1、atoi (表示 ascii to integer)是把字符串转换成整型数的一个函数。 2、C代码实现如下 #include <stdio.h> #include <ctype.h> /*atoi() function:convert string to integer*/ int atoi(char str[]... 阅读详情

 我自己写的C函数atoi,itoa的一个实现,代码如下:

 

//返回值 -1表示出错
//参数num引用返回转换后的整数
int atoi(int& num,const char * s)
{
 
if( s == NULL)
  
return -1;
 
const char * p = s;
 
while (*p == ' ')
 
{
  
++p;
 }

 
int bits = 0;
 
bool nagetive = false;
 
if( *p == '-' )
 
{
  nagetive 
= true;
  
++p;
 }

 
const char * pBegin = p;
  
 
int endSpace = 0;
 
int endBit = -1;
 
while (*p != NULL)
 
{
  
if( *p == '.' )
  
{
   
if( endBit > -1 )
    
return -1;
   endBit 
= bits++;
   
++p;
   
continue;
  }

  
bool endSpace = false;
  
while( *p != NULL && (char)*p == ' ' )
  
{
   
++p;
   endSpace 
= true;
  }

  
if( endSpace )
  
{
   
if( *p == NULL )
    
break;
   
return -1;
  }

  
if( (char)*p < '0' || (char)*p > '9' )
   
return -1;
  
  bits
++;
  p
++;
 }

 bits 
= endBit == -1 ? bits : endBit;
 
int sum = 0;
 
for(int i = 0; i < bits; ++i)
 
{
  sum 
= sum * 10 + pBegin[i] - (char)'0';
 }

 num 
= sum;
 
if( nagetive )
  num 
= -num;
 
return 0;
}


//返回值为转换后的C字符串,使用完以后需要调用delete []
char * itoa(int num)
{
 
if( num == 0 )
 
{
  
char * pChr = new char[2];
  
*pChr++ = '0';
  
*pChr = 0;
  
return pChr;
 }

 
bool negitive = false;
 
if( num < 0 )
 
{
  negitive 
= true;
  num 
= -num;
 }

 
char * p = new char[12];
 p[
11] = 0;
 
int temp = num;
 
int t = 0;
 
int index = 10;
 
while( (temp/10) >= 1 )
 
{
  t 
= temp % 10;
  temp 
= temp/10;
  p[index
--] = (char)(t + (char)'0');
 }

 p[index] 
= (char)(temp + (char)'0');
 
int size = 11 - index + 1;
 
if( negitive )
  size
++;
 
char *val = new char[size];
 val[size 
- 1] = 0;
 
int i = 0;
 
if( negitive )
 
{
  val[i
++] = '-';
 }

 
while( i < size)
 
{
  val[i
++] = p[index++];
 }

 delete [] p;
 
return val;
}
C语言标准函数库itoa和strlen的实现带详细注释 标准函数库itoa和strlen的实现,C语言源码 学习自己实现数值转字符itoa函数和求字符串长度strlen函数 立即下载

相关推荐

itoa函数的实现 用C语言写的

itoa函数的实现 用C语言写的 很简单的 大家可以参考下

itoa源代码

char* itoa(int value, char* str, int radix) { if (nullptr == str) { return nullptr; } if (radix > 36 || radix < 2) { //基础类库一般最大到36进制,最小2进制 return nullptr; } ...

sixianhefeng的博客 769

C语言itoa、atoi和strlen的实现

学习自己实现数值转字符itoa函数、字符串转数值atoi函数和求字符串长度strlen函数

itoa 用法与源码剖析

用法 函数原型:char* _itoa(int value, char* string, int radix) 作用效果:按照进制准则,把数字转换字符串 参数: int value          要转换的数字 char* string    存储字符串 int radix           进制 举例: /* itoa example */ #include #incl

半壶老酒 2068

atoi函数源代码

atoi函数的源代码,使你更加的了解atoi函数的功能。

atoi实现的三种方法源码(c++)

atoi实现的三种方法源码(c++)atoi实现的三种方法源码(c++)atoi实现的三种方法源码(c++)atoi实现的三种方法源码(c++)atoi实现的三种方法源码(c++)

C 语言整数转字符串(拓展函数 itoa)的源码实现

itoa (表示 integer to alphanumeric)是把整型数转换成字符串的一个函数。在<stdlib.h> 头文件中 使用方法: char* itoa(int value,char*string,int radix);//value: 要转换的整数,string: 转换后的字符串,radix: 转换进制数,如2,8,10,16 进制等。 函数源码: char...

qq_34729246的博客 1232

Vmware 17保姆级教程:从零部署华为enspPro模拟器(附镜像下载+配置优化)

本文提供了一份详尽的Vmware 17部署华为eNSP Pro模拟器的保姆级教程。内容涵盖从镜像下载、虚拟机导入、网络配置到深度性能调优的全过程,并针对常见启动失败、设备卡顿等故障提供了实用的排查方案,旨在帮助网络工程师和华为认证备考者快速搭建稳定高效的实验环境。

arduino9maker的博客 632

atoi 与 itoa的详解和实现源代码

一)C语言库函数名: int atoi(const char *nptr); ①函数解释 功 能: 把字符串转换成整型数. 名字来源:array to integer 的缩写. 函数说明: 参数nptr字符串,如果第一个非空格字符不存在或者不是数字也不是正负号则返回零,否则开始做类型转换,之后检测到非数字(包括结束符 \0) 字符时停止转换,返回整型数。 头文件: #include

tianmo2010的专栏 3371

HHD Device Monitoring Studio:破解版在串口调试中的实战应用

本文详细介绍了HHD Device Monitoring Studio破解版在串口调试中的实战应用,包括安装指南、串口监控功能解析、Modbus RTU协议分析案例以及自定义协议解析技巧。通过具体操作步骤和性能优化建议,帮助开发者高效完成端口监控和调试任务,提升工作效率。

weixin_29268331的博客 937

单细胞转录组上游分析完整流程(超详细)

本指南详细介绍单细胞转录组数据分析流程,从10xGenomics平台数据出发,使用CellRanger工具完成从原始FASTQ文件到基因表达矩阵的全过程。内容涵盖:1) 环境准备与参考基因组获取;2) 测试数据下载;3) 数据质量检测方法;4) CellRanger核心流程详解;5) 结果解读;6) 下游分析衔接。同时提供开源替代方案kallisto|bustools的使用说明,并解答常见问题。适合单细胞转录组分析初学者快速掌握标准分析流程。

Rita_rr的博客 1156

整数转字符串 itoa () 完全指南:从原理到实战

在 C/C++ 开发中,“整数转字符串” 是高频需求 —— 无论是日志打印、数据序列化,还是嵌入式设备的显示控制,都需要将int/long类型的数值转换成可读的字符串。而itoa()函数作为专门处理该需求的工具,虽非 C 标准库成员,却因高效简洁成为开发者常用选择。

byte轻骑兵的技术小窝 7757

Golang实战:用Quic-Go v0.46.0搭建高性能文件传输服务(附完整代码)

本文详细介绍了如何使用Golang和Quic-Go v0.46.0构建高性能文件传输服务,涵盖服务端和客户端的完整实现。通过QUIC协议的多路复用、零RTT连接等特性,显著提升文件传输效率,特别适合高延迟或不稳定网络环境。文章提供完整代码示例和性能调优技巧,帮助开发者快速部署高效的文件传输解决方案。

weixin_33737134的博客 447

atoi、itoa、strcpy、strcmp函数的C/C++代码实现

int my_atoi(const char* p) { assert(p != NULL); bool b_flag = false; int n_res = 0; if(p[0] == '+' || p[0] == '-') { b_flag = (*p++ != '+'); } while(isdigit(*p)) { n_res = n_res*10 + (*

585

Keil MDK v6迁移指南:从AC5到AC6的编译器升级与工程适配

编译器是嵌入式开发的底层基石,决定了代码的执行效率与工程的可维护性。随着ARM工具链向LLVM/Clang架构演进,Arm Compiler 6(AC6)正逐步取代经典的AC5,成为Keil MDK的核心编译引擎。AC6在C11标准支持、代码优化、诊断信息及LTO链接优化上全面超越AC5,但迁移过程中往往伴随内联汇编重写、类型检查严格化、库兼容性等问题。理解编译器差异、掌握CMSIS-Toolbox的工程描述机制,能帮助嵌入式工程师在Cortex-M系列项目中平滑过渡。本文结合Cortex-M4量产工程实战

weixin_29189363的博客 236

Microsoft Speech SDK 使用过程中女声改为男声遇到的问题

问题将女生改为系统自带男声(Kangkang)根据上面的步骤我的播放声音是改变了,但是还是女生,是yaoyao的女生。是因为下面注册表路径中VoicePath这个配置的路径指向了yaoyao的文件。 如何使用Microsoft Speech SDK,请参考https://blog.youkuaiyun.com/daoming1112/article/details/77542562 使用系统自带男声语音,不需...

u012161365的博客 7538

函数 atoi() 和 itoa() 的 C 语言实现。

函数 atoi() 和 itao() 的 C 语言实现。 1. atoi() 函数    #include #include #include int myatoi(const char *str){ int c; int total; int sign; while(isspace((int)(unsigned char)*str)){ +

程序人生 3315

射频微波电路设计【1.4】

AppCAD是一组射频设计工具和计算机应用说明,它使射频工程师能以更快和更容易的方式设计他们的产品。该软件的理 念是为工程师提供一个“个人设计助理”,即功能强大、快速和容易使用的辅助设计工具。该软件包括如下基本功能: ·各种传输线电气参数的分析与计算;·各种匹配电路的分析与计算;·各种有源和无源简单电路的分析与计算;·射频系统指标的计算:增益、噪声系数、三阶交调、信噪比、灵敏度等;·器件可靠性分析。

qq_43416206的博客 2317

atoi和itoa函数实现

atoi函数是C语言库提供的,是把字符串转换成整型数和把字符串转换成整型数。而itoa函数是广泛应用的非标准C语言扩展函数,由于它不是标准C语言函数,所以不能在所有的编译器中使用,它的功能是把一整数转换为字符串。 两个函数功能很好理解,但是它们的实现需要考虑到很多问题,在面试中,很多面试官都会问atoi和itoa的实现,这可以很好的了解程序员编程的功底。 那么在实现atoi一般需要考虑到那些情

Hello Code 824

python如何给声音增加回声效果

创建任何声音对象的回声效果。使用sndarray和numpy来创建原始声音的偏移和衰减副本。目前它只是使用硬编码的值来设置回声的数量和延迟。你可以根据自己的需要轻松地重新创建。这段注释说明了make_echo函数的用途和实现方式,即通过pygame的sndarray模块和numpy库来处理声音数据,生成具有回声效果的声音。函数中使用了固定的回声数量和延迟时间,但这些值可以根据用户的需求进行调整。

zhangzhechun的专栏 976

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

C语言itoa()函数和atoi()函数详解(整数转字符C实现)

C语言itoa()函数和atoi()函数详解(整数转字符C实现) C语言提供了几个标准库函数,可以将任意类型(整型、长整型、浮点型等)的数字转换为字符串。 1.int/float to string/array: C语言提供了几个标准库函数,可以将任意类型(整型、长整型、浮点型等)的数字转换为字符串,下面列举了各函数的方法及其说明。 ● itoa():...

Black_黑色的博客 446

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

笔试面试1 用C实现C库函数itoa, atoi

要求用C实现C库函数itoa或者是atoi.也就是字符串和数字的相互转换。 其实这是一个非常简单的问题。 但是有次笔试我没有理解好题意,也没有想到其实这就是一个如何将数字以字符串的方式存放。 这就是从来不刷笔试题面试题的后果啊,有时候都不知道题目究竟是想考察什么东西! 说实话,C的一些特性我不是特别熟悉,不同于C++,C++的特性我可以说是非常熟悉了,所以要用C来写对我来说也会多少有一点影

roaylchen的博客 1910

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

从atoi函数展开来

今天在看酷壳网站的博客时,看到了关于面试的一些文章,进而看到了面试中常考的atoi等等函数的实现,于是搜索之,发现了一个很棒的博客,名字也蛮好“good good code, day day up”,确实啊,coding 需要长期经常的练习,熟能生巧,一直以来都不确定是否能够在技术的道路上走多远,但是经过这两年尤其是这半年来的经验,我有信心继续走下去,也发现我愿意走下去,哪怕现在的我有诸多不足,但

jlei_apple的专栏 1274

atoi 和 itoa的实现

atoi 和 itoa是面试笔试经常要考到的题目,下面两份代码是用C语言实现的atoi和itoa: 1, atoi 原型: int atoi(const char *nptr); 函数说明: 参数nptr字符串,如果第一个非空格字符不存在或者不是数字也不是正负号则返回零,否则开始做类型转换,之后检测到非数字(包括结束符 \0) 字符时停止转换,返回整型数。 #include ...

acxm45824的博客 177

atoi函数和itoa函数以及模拟使用

atoi函数的作用是把一个字符串换成一个整型数据,该函数包含于头文件中。1.空字符返回数字0;2.数字字符前有空白字符跳过;3.数字字符前有+、-号,做整数类型的正负处理;4.数字字符前有其他字符返回0;

weixin_63779802的博客 3306

C语言—atoi()、itoa()函数以及my_atoi()、my_itoa()函数详解

atoi()、itoa()函数以及my_atoi()、my_itoa()函数详解

weixin_68908154的博客 2869
上一篇: ASP.NET的DropDownList控件OnSelectedIndexChanged事件产生Javascript错误的一个原因
下一篇: 怎样使用C#添加计算机帐户并启用帐户
sinsel
博客等级 码龄20年 3粉丝 23原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值