atof(),atoi(),itoa()和stoi(),c_str()函数的用法

一、 atof()

头文件#include<stdlib.h>/include<cstdlib>

原型:double atof(const char *nptr);

作用:把字符串转换成浮点数,直至遇到第一个空格。

二、 itoa()

头文件#include<stdlib.h>/include<cstdlib>

原型:char* itoa(int value,char* string,int radix);其中,value是要转换的整数值,string是存储转换后值的字符数组,radix代表进制,radix=10就是十进制,radix=2就是二进制。

作用:将整数转换为字符串。

下面是我在使用这个函数时遇到的一些问题,

1. 第二个参数只能是char*,不能是string;

2. 第二个参数在使用之前必须提前分配存储空间,在C++中就是new一块内存。

三、atoi()与stoi()

头文件: #include<stdlib.h>/#include<cstdlib>

原型:int atoi(const char *nptr);

作用:把字符串转换成整型数。如果第一个非空格字符不存在或者不是数字也不是正负号则返回零,否则开始做类型转换,之后检测到非数字或结束符 \0 时停止转换,返回整型数。atoi()不会做范围检查,如果超出范围的话,超出上界,则输出上界,超出下界,则输出下界;stoi()会做范围检查,默认范围是在int的范围内的,如果超出范围的话则会runtime error!

四、c_str()

头文件:include<cstring>

作用:将string对象,转化为char*对象。它是String类中的一个函数,它返回当前字符串的首字符地址。

用法示例:

#include <bits/stdc++.h>
using namespace std;
int main()
{
        string str1 = "237";
        int a = atoi(str1.c_str());
        cout<<a<<endl;
        return 0;
}

借鉴于:

https://blog.csdn.net/N1neDing/article/details/83313994

https://blog.csdn.net/qq_41822647/article/details/85042385

发布了87 篇原创文章 · 获赞 56 · 访问量 9147

猜你喜欢

转载自blog.csdn.net/Ven21959/article/details/101431256