在C++中有两个系统函数可以实现字符串转浮点型和字符串转整形,下面实现一下这两个函数。

#include <iostream>
#include <string>
using namespace std;
double atof(const char* s)//字符型转浮点型
{
int i = 0;
int k = 1;
double d;
double n = 0,m = 0;
bool flag = true;
if(*s == '-')//处理符号
{
flag = false;
i ++;
}
else
{
flag = true;
}
while(*(s + i) != '\0')
{
while(*(s + i) >= '0' && *(s + i) <= '9')//处理整数部分
{
n = n * 10 + (*(s + i) - '0');
i ++ ;
}
i ++;
while(*(s + i) >= '0' && *(s + i) <= '9')//处理小数部分
{
m = m * 10 + (*(s + i) - '0');
k *= 10;
i ++;
}
}
if(flag)
d = n + m / k ;
else
d = -1 * (n + m / k);
return d;
}
int atoi(const char * s)//字符型转整形
{
int n = 0,i = 0;
bool flag = true;
if(*s == '-')//处理符号
{
flag = false;
i ++;
}
else
{
flag = true;
}
while(*(s + i) != '\0' && *(s + i) >= '0' && *(s + i) <= '9')
{
n = n * 10 + (*(s + i) - '0');
i ++ ;
}
if(flag)
n = n;
else
n = -1 * n;
return n;
}
int main(int argc, char *argv[])
{
char s[10];
char ss[10];
int n;
double d;
cout<<"Input a string!"<<endl;
cin>>s;
cout<<atof(s)<<endl;
cout<<"Input another string!"<<endl;
cin>>ss;
cout<<atoi(ss)<<endl;
return 0;
}

  运行结果:

C++中atof函数的实现和atoi的实现的更多相关文章

  1. C++中的函数库

    函数库是由系统建立的具有一定功能的函数的集合. 库中存放函数的名称和对应的目标代码,以及连接过程中所需的重定位信息.用户也可以根据自己的需要建立自己的用户函数库. "cstdlib" ...

  2. 字符串函数---atof()函数详解

    atof()函数 atof(),是C 语言标准库中的一个字符串处理函数,功能是把字符串转换成浮点数,所使用的头文件为<stdlib.h>.该函数名是 “ascii to floating ...

  3. 软件测试中LoadRunner函数中的几个陷阱

    软件测试 中 LoadRunner 函数中的几个陷阱 1.atof 在 loadrunner 中如果直接用 float f; f=atof("123.00"); lr _outpu ...

  4. C++ atof 函数

    腾讯云:https://cloud.tencent.com/developer/article/1391966 atof函数: 功能:将字串转换成浮点型数 相关函数 atoi,atol,strtod, ...

  5. Oracle 中 decode 函数用法

    Oracle 中 decode 函数用法 含义解释:decode(条件,值1,返回值1,值2,返回值2,...值n,返回值n,缺省值) 该函数的含义如下:IF 条件=值1 THEN RETURN(翻译 ...

  6. mysql中now()函数的使用,还有oracle的sysdate,可能埋下的坑

    mysql中now()函数的使用,还有oracle的sysdate 在需求中如果系统中药添加当前操作的时间那么很简单的一个操作在写sql的时候直接在这个字段对应的位置写上now()函数就可以了,这样就 ...

  7. 程序代码中退出函数exit()与返回函数return ()的区别

    程序代码中退出函数exit()与返回函数return ()的区别   exit(0):正常运行程序并退出程序:   exit(1):非正常运行导致退出程序:   return():返回函数,若在主函数 ...

  8. mysql中find_in_set()函数的使用

    首先举个例子来说: 有个文章表里面有个type字段,它存储的是文章类型,有 1头条.2推荐.3热点.4图文等等 .现在有篇文章他既是头条,又是热点,还是图文,type中以 1,3,4 的格式存储.那我 ...

  9. QT中使用函数指针

    想仿命令行,所以定义了一个类,让一个String 对应一个 function,将两者输入list容器. 类中定义了 QString commandStr; void (MainWindow::*com ...

随机推荐

  1. 一款简单易用的.Net 断言测试框架 : Shouldly

    GitHub地址:https://github.com/shouldly/shouldly Shouldly的官方文档:http://docs.shouldly-lib.net/ Nuget安装: 在 ...

  2. 一些常用的CDN列表

    Microsoft Ajax Content Delivery Network 点击查看详细列表

  3. HAproxy的安装配置及动静分离

    /////////////////////////////目录//////////////////////////////////////////一.安装HAproxy二.编写HAproxy启动脚本三 ...

  4. python的os.urandom 的用途

    Python中os.urandom(n)的作用 随机产生n个字节(0-255)的字符串,可以作为随机加密key使用~ >>> index = os.urandom(2) >&g ...

  5. MVVM模式的3种command总结[1]--DelegateCommand

    MVVM模式的3种command总结[1]--DelegateCommand 查了不少资料,大概理清楚的就是有3种.当然类名可以自己取了,不过为了便于记忆和区分,还是和看到的文章里面用一样的类名. 1 ...

  6. MS SQL2008执行大脚本文件时,提示“内存不足”的解决办法

    问题描述: 当客户服务器不允许直接备份时,往往通过导出数据库脚本的方式来部署-还原数据库, 但是当数据库导出脚本很大,用Microsoft SQL Server Management Studio执行 ...

  7. ORM--------Hibernate、Mybatis与Spring Data的区别

    1.概念: Hibernate :Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库.着力点对象 ...

  8. css布局(转载)

    单列布局 水平居中 水平居中的页面布局中最为常见的一种布局形式,多出现于标题,以及内容区域的组织形式,下面介绍四种实现水平居中的方法(注:下面各个实例中实现的是child元素的对齐操作,child元素 ...

  9. 浅谈js数据类型识别方法

    js有6种基本数据类型  Undefined , Null , Boolean , Number , String ,Symbol和一种引用类型Object,下面我们就来一一看穿,哦不,识别他们. t ...

  10. ADO.NET简介

    一.ADO.NET ADO.NET源起ADO(ActiveX Data Objects),是一个COM组件库,在NET编程环境中优先使用的数据访问接口, 提供对诸如 SQL Server 和 XML ...