c++中string類型和int類型相互轉(zhuǎn)換的幾種常用方法
一.string類型轉(zhuǎn)換成int類型
方法一:使用atoi()函數(shù)
#include<bits/stdc++.h>
using namespace std;
int main(){
string str="123";
cout<<str<<" str的類型為"<<typeid(str).name()<<endl;//輸出Ss表示string類型
//atoi的參數(shù)類型為(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,不同編譯器這個函數(shù)輸出可能不同啦。
還有一些類似的函數(shù):
- long atol(const char *nptr);把字符串轉(zhuǎn)換成長整型數(shù)
- double atof(const char *nptr);把字符串轉(zhuǎn)換成浮點(diǎn)數(shù)
- long int strtol(const char *str, char **endptr, int base);把參數(shù) str 所指向的字符串根據(jù)給定的 base 轉(zhuǎn)換為一個長整數(shù)
方法二:通過stringstream類轉(zhuǎn)化
#include<bits/stdc++.h>
using namespace std;
int main() {
stringstream sstream;
string str="123";
int num;
cout<<"str="<<str<<" str的類型為"<<typeid(str).name()<<endl;//輸出Ss表示string類型
sstream<<str;// 將string類型的值放入字符串流中
sstream>>num;//將sstream中的第一條數(shù)據(jù)輸出到num中
cout<<"num="<<num<<" num的類型為"<<typeid(num).name()<<endl;//輸出i表示int類型
}二.int類型轉(zhuǎn)換成string類型
方法一:使用to_string()函數(shù)
#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)函數(shù)有多個重載,只要x是內(nèi)置數(shù)值類型就可以。
方法二:通過stringstream類轉(zhuǎn)化
#include<bits/stdc++.h>
using namespace std;
int main() {
stringstream sstream;
string str;
int num=123;
cout<<"num="<<num<<" num的類型為"<<typeid(num).name()<<endl;//輸出i表示int類型
sstream<<num;// 將num類型的值放入字符串流中
sstream>>str;//將sstream中的第一條數(shù)據(jù)輸出到str中
cout<<"str="<<str<<" str的類型為"<<typeid(str).name()<<endl;//輸出Ss表示string類型
}方法三:使用itoa()函數(shù)
函數(shù)原型:char * itoa(int value ,char *string ,int radix);
- 第一個參數(shù)是要轉(zhuǎn)換的數(shù)字
- 第二個參數(shù)是要寫入轉(zhuǎn)換結(jié)果的目標(biāo)字符串(字符型數(shù)組)
- 第三個參數(shù)是轉(zhuǎn)移數(shù)字時所用的基數(shù)(進(jìn)制)?(可以用來做進(jìn)制轉(zhuǎn)換)
- 返回值:指向string這個字符串的指針
#include<bits/stdc++.h>
using namespace std;
int main() {
int num=123;
char strc[100];
string str=itoa(num,strc,10);//返回的是指向strc的指針,直接存進(jìn)string類型即可
cout<<"num="<<num<<" num的類型為"<<typeid(num).name()<<endl;//輸出i表示int類型
cout<<"str="<<str<<" str的類型為"<<typeid(str).name()<<endl;//輸出Ss表示string類型
}其他類似的函數(shù):
- litoa() 將長整型值轉(zhuǎn)換為字符串
到此這篇關(guān)于c++中string類型和int類型相互轉(zhuǎn)換的幾種常用方法的文章就介紹到這了,更多相關(guān)c++ string和int 互換內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- C++中g(shù)etline()、gets()等函數(shù)的用法詳解
- C++ cin.getline及getline()用法詳解
- C++中g(shù)etline()的用法詳解
- C++中g(shù)etline()和get()的方法淺析
- C++的get()函數(shù)與getline()函數(shù)使用詳解
- 基于C++ cin、cin.get()、cin.getline()、getline()、gets()函數(shù)的使用詳解
- 詳解C++中實(shí)現(xiàn)繼承string類的MyString類的步驟
- 探究C++中string類的實(shí)現(xiàn)原理以及擴(kuò)展使用
- C++ string類getline()用法實(shí)例詳解
相關(guān)文章
vscode C++開發(fā)環(huán)境配置步驟詳解(教你如何用vscode編寫寫C++)
這篇文章主要介紹了vscode C++開發(fā)環(huán)境配置詳細(xì)教程(教你如何用vscode編寫寫C++),本文通過圖文并茂的形式給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-03-03
淺析C++標(biāo)準(zhǔn)庫元組(tuple)源碼
這篇文章主要介紹了C++標(biāo)準(zhǔn)庫元組(tuple)源碼,介紹了什么是元組以及用法,并進(jìn)行了源碼分析,需要的朋友可以參考下2015-08-08
深入解析Radix Sort基數(shù)排序算法思想及C語言實(shí)現(xiàn)示例
基數(shù)排序和桶排序、計(jì)數(shù)排序共同是三種最常用的線性排序算法,這里我們就來深入解析Radix Sort基數(shù)排序算法思想及C語言實(shí)現(xiàn)示例,需要的朋友可以參考下2016-07-07

