首页 > 代码库 > C++中atof函数的实现和atoi的实现
C++中atof函数的实现和atoi的实现
在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的实现
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。