开发者

c++中string类型和int类型相互转换的几种常用方法

目录
  • 一.string类型转换成int类型
    • 方法一:使用atoi()函数
    • 方法二:通过stringstream类转化
  • 二.int类型转换成string类型
    • 方法一:使用to_string()函数
    • 方法二:通过stringstream类转化
    • 方法三:使用itoa()函数

一.string类型转换成int类型

方法一:使用atoi()函数

#include<bits/stdc++.h>
using namespace std;
int main(){
    string str="123";
    cout&编程客栈lt;<str<<"    str的类型为"<<typeid(str).name()<<endl;//输出Ss表示string类型
    //atoi的参数类型为(const char *nptr)而string是一个类,所以需要获取str的首地址即str.c_str()
    int num=atoi(str.c_str()); 
    cout<<num<<"    num的类型为"<<typeid(num).name()<<endl;//输出i表示int类型 
}

用devc++的typeid(num).name()输出是i,vs2017输出的是int,不同编译器这个函数输出可能不同啦。

还有一些类似的函数:

  • long atol(const char *nptr);把字符串转换成长整型数
  • double atof(const char *nptr);把字符串转换成浮点数
  • long int strtol(const char *str, char **endptr, int base);把参数 str 所指向的字符串根据给定的 base 转换为一个长整数

方法二:通过stringstream类转化

#include<bits/stdc++.h>
using namespace std;
int main() {
    stringstream sstream;
    string str="123";
    int num;
    couthttp://www.devze.com<<"str="<<str<<"    str的类型为"<<typeid(str).name()<<endl;//输出Ss表示string类型
    sstream<<str;// 将string类型的值放入字符串http://www.devze.com流中
    sstream>>num;//将sstream中的第一条数据输出到num中 
    cout<<"num="<<num<<"    num的类型为"<<typeid(num).name()<<endl;//输出i表示int类型
}

二.int类型转换成string类型

方法一:使用to_string()函数

#include<bits/stdc++.h>
using namespace std;
int main() {
    int num=123;
    string str=to_string(num);
    cout<<"num="<<num<<"    num的类型为"<<typeid(num).name()<<endl;//输出i表示int类型
    cout<<"str="<<str<<"    str的类型为"<<typeid(str).name()<<endl;//输出Ss表示string类型
}

to_string(x)函数有多个重载,只要x是内置数值类型就可以。

方法二:通过stringstream类转化

#include<bits/stdc++.h>
using namespace std;
int main() {
    stringstream sstream;
    string str;
    int num=123;
    cout<<"num="<<num<<"    num的类型为"<<typeid(nuYtDkYgUCCim).name()<<endl;//输出i表示int类型
    sstream<<num;// 将num类型的值放入字符串流中
    sstream>>str;//将sstream中的第一条数据输出到str中 
    cout<<"str="<<str<<"    str的类型为"<<typeid(str).name()<<endl;//输出Ss表示string类型
}

方法三:使用itoa()函数

函数原型:char * itoa(int value ,char *string ,int radix);

  • 第一个参数是要转换的数字
  • 第二个参数是要写入转换结果的目标字符串YtDkYgUCCi(字符型数组)
  • 第三个参数是转移数字时所用的基数(进制)⭐(可以用来做进制转换)
  • 返回值:指向string这个字符串的指针
#include<bits/stdc++.h>
using namespace std;
int main() {
    int num=123;
    char strc[100];
    string str=itoa(num,strc,10);//返回的是指向strc的指针,直接存进string类型即可
    cout<<"num="<<num<<"    num的类型为"<<typeid(num).name()<<endl;//输出i表示int类型
    cout<<"str="<<str<<"    str的类型为"<<typeid(str).name()<<endl;//输出Ss表示string类型
}

其他类似的函数:

  • litoa() 将长整型值转换为字符串

到此这篇关于c++中string类型和int类型相互转换的几种常用方法的文章就介绍到这了,更多相关c++ string和int 互换内容请搜索编程客栈(www.devze.com)以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程客栈(www.devze.com)!

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新开发

开发排行榜