在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. Flume NG初次使用

    一.什么是Flume NG Flume是一个分布式.可靠.和高可用性的海量日志采集.聚合和传输的系统,支持在日志系统中定制各类数据发送方,用于收集数据:同时Flume提供对数据的简单处理,并写到各种数 ...

  2. RabbitMQ入门(1)——Hello World

    这系列是官网的翻译和一些博客的参考,仅供自己复习使用. 介绍 官网定义: RabbitMQ is the most widely deployed open source message broker ...

  3. Gym - 100712B Rock-Paper-Scissors

    https://vjudge.net/problem/Gym-100712B 题意: 石头剪刀布游戏. 给出一个玩家n局的出的顺序,现在另一个是这样出的,X+Y+Z=n,在前X轮出石头,中间Y轮出布, ...

  4. 把 b中的字段整合到a上

    a = [{"id": 1, "data": 1}, {"id": 2, "data": 1}, {"id&q ...

  5. JavaScript高级程序设计-读书笔记(6)

    第20章 JSON JSON是一个轻量级的数据格式,可以简化表示复杂数据结构的工作量 JSON的语法可以表示一下三种类型的值 l        简单值:使用与JavaScript相同的语法,可以在JS ...

  6. JavaScript高级程序设计-读书笔记(4)

    第11章 DOM扩展 1.选择符API Selector API Level 1 的核心是两个方法:querySelector()和querySelectorAll().在兼容的浏览器中,可以通过Do ...

  7. 转 tensorflow模型保存 与 加载

    使用tensorflow过程中,训练结束后我们需要用到模型文件.有时候,我们可能也需要用到别人训练好的模型,并在这个基础上再次训练.这时候我们需要掌握如何操作这些模型数据.看完本文,相信你一定会有收获 ...

  8. 三十二 Python分布式爬虫打造搜索引擎Scrapy精讲—scrapy的暂停与重启

    scrapy的每一个爬虫,暂停时可以记录暂停状态以及爬取了哪些url,重启时可以从暂停状态开始爬取过的URL不在爬取 实现暂停与重启记录状态 1.首先cd进入到scrapy项目里 2.在scrapy项 ...

  9. nyoj最少乘法次数——快速幂思想

    最少乘法次数 时间限制:1000 ms  |  内存限制:65535 KB 难度:3   描述 给你一个非零整数,让你求这个数的n次方,每次相乘的结果可以在后面使用,求至少需要多少次乘.如24:2*2 ...

  10. Ansible 小手册系列 十三(Jinja2)

    用于playbook中的jinja 2过滤器 更改数据格式,其结果是字符串 {{ some_variable | to_json }} {{ some_variable | to_yaml }} 对于 ...