欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

c++中string類(lèi)型和int類(lèi)型相互轉(zhuǎn)換的幾種常用方法

 更新時(shí)間:2023年08月01日 11:12:16   作者:不愛(ài)吃魚(yú)的貓丶  
我們?cè)诰帉?xiě)程序時(shí),經(jīng)常涉及到int與string之間的類(lèi)型轉(zhuǎn)換,本文主要介紹了c++中string類(lèi)型和int類(lèi)型相互轉(zhuǎn)換的幾種常用方法,具有一定的參考價(jià)值,感興趣的可以了解一下

一.string類(lèi)型轉(zhuǎn)換成int類(lèi)型

方法一:使用atoi()函數(shù)

#include<bits/stdc++.h>
using namespace std;
int main(){
    string str="123";
    cout<<str<<"    str的類(lèi)型為"<<typeid(str).name()<<endl;//輸出Ss表示string類(lèi)型
    //atoi的參數(shù)類(lèi)型為(const char *nptr)而string是一個(gè)類(lèi),所以需要獲取str的首地址即str.c_str()
    int num=atoi(str.c_str()); 
    cout<<num<<"    num的類(lèi)型為"<<typeid(num).name()<<endl;//輸出i表示int類(lèi)型 
}

用devc++的typeid(num).name()輸出是i,vs2017輸出的是int,不同編譯器這個(gè)函數(shù)輸出可能不同啦。

還有一些類(lèi)似的函數(shù):

  • long atol(const char *nptr);把字符串轉(zhuǎn)換成長(zhǎng)整型數(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)換為一個(gè)長(zhǎng)整數(shù)

方法二:通過(guò)stringstream類(lèi)轉(zhuǎn)化

#include<bits/stdc++.h>
using namespace std;
int main() {
    stringstream sstream;
    string str="123";
    int num;
    cout<<"str="<<str<<"    str的類(lèi)型為"<<typeid(str).name()<<endl;//輸出Ss表示string類(lèi)型
    sstream<<str;// 將string類(lèi)型的值放入字符串流中
    sstream>>num;//將sstream中的第一條數(shù)據(jù)輸出到num中 
    cout<<"num="<<num<<"    num的類(lèi)型為"<<typeid(num).name()<<endl;//輸出i表示int類(lèi)型
}

二.int類(lèi)型轉(zhuǎn)換成string類(lèi)型

方法一:使用to_string()函數(shù)

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

to_string(x)函數(shù)有多個(gè)重載,只要x是內(nèi)置數(shù)值類(lèi)型就可以。

方法二:通過(guò)stringstream類(lèi)轉(zhuǎn)化

#include<bits/stdc++.h>
using namespace std;
int main() {
    stringstream sstream;
    string str;
    int num=123;
    cout<<"num="<<num<<"    num的類(lèi)型為"<<typeid(num).name()<<endl;//輸出i表示int類(lèi)型
    sstream<<num;// 將num類(lèi)型的值放入字符串流中
    sstream>>str;//將sstream中的第一條數(shù)據(jù)輸出到str中 
    cout<<"str="<<str<<"    str的類(lèi)型為"<<typeid(str).name()<<endl;//輸出Ss表示string類(lèi)型
}

方法三:使用itoa()函數(shù)

函數(shù)原型:char * itoa(int value ,char *string ,int radix);

  • 第一個(gè)參數(shù)是要轉(zhuǎn)換的數(shù)字
  • 第二個(gè)參數(shù)是要寫(xiě)入轉(zhuǎn)換結(jié)果的目標(biāo)字符串(字符型數(shù)組)
  • 第三個(gè)參數(shù)是轉(zhuǎn)移數(shù)字時(shí)所用的基數(shù)(進(jìn)制)?(可以用來(lái)做進(jìn)制轉(zhuǎn)換)
  • 返回值:指向string這個(gè)字符串的指針
#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類(lèi)型即可
    cout<<"num="<<num<<"    num的類(lèi)型為"<<typeid(num).name()<<endl;//輸出i表示int類(lèi)型
    cout<<"str="<<str<<"    str的類(lèi)型為"<<typeid(str).name()<<endl;//輸出Ss表示string類(lèi)型
}

其他類(lèi)似的函數(shù):

  • litoa() 將長(zhǎng)整型值轉(zhuǎn)換為字符串

到此這篇關(guān)于c++中string類(lèi)型和int類(lèi)型相互轉(zhuǎn)換的幾種常用方法的文章就介紹到這了,更多相關(guān)c++ string和int 互換內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • C++實(shí)現(xiàn)LeetCode(103.二叉樹(shù)的之字形層序遍歷)

    C++實(shí)現(xiàn)LeetCode(103.二叉樹(shù)的之字形層序遍歷)

    這篇文章主要介紹了C++實(shí)現(xiàn)LeetCode(103.二叉樹(shù)的之字形層序遍歷),本篇文章通過(guò)簡(jiǎn)要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下
    2021-07-07
  • C++進(jìn)一步認(rèn)識(shí)類(lèi)與對(duì)象

    C++進(jìn)一步認(rèn)識(shí)類(lèi)與對(duì)象

    類(lèi)是創(chuàng)建對(duì)象的模板,一個(gè)類(lèi)可以創(chuàng)建多個(gè)對(duì)象,每個(gè)對(duì)象都是類(lèi)類(lèi)型的一個(gè)變量;創(chuàng)建對(duì)象的過(guò)程也叫類(lèi)的實(shí)例化。每個(gè)對(duì)象都是類(lèi)的一個(gè)具體實(shí)例(Instance),擁有類(lèi)的成員變量和成員函數(shù)
    2021-10-10
  • C語(yǔ)言調(diào)用攝像頭生成avi視頻程序

    C語(yǔ)言調(diào)用攝像頭生成avi視頻程序

    這篇文章主要為大家詳細(xì)介紹了C語(yǔ)言如何調(diào)用攝像頭生成avi視頻程序,文中的示例代碼講解詳細(xì),具有一定的借鑒價(jià)值,有需要的小伙伴可以參考一下
    2023-11-11
  • C++設(shè)計(jì)模式之策略模式

    C++設(shè)計(jì)模式之策略模式

    這篇文章主要介紹了C++設(shè)計(jì)模式之策略模式,本文講解了什么是策略模式、策略模式的使用場(chǎng)合、策略模式的代碼實(shí)例等內(nèi)容,需要的朋友可以參考下
    2014-10-10
  • C語(yǔ)言菜鳥(niǎo)基礎(chǔ)教程之條件判斷

    C語(yǔ)言菜鳥(niǎo)基礎(chǔ)教程之條件判斷

    本文給大家簡(jiǎn)單介紹了下C語(yǔ)言中的條件判斷語(yǔ)句的語(yǔ)法和用法示例,非常簡(jiǎn)潔實(shí)用,有需要的小伙伴可以參考下
    2017-10-10
  • C語(yǔ)言使用廣度優(yōu)先搜索算法解決迷宮問(wèn)題(隊(duì)列)

    C語(yǔ)言使用廣度優(yōu)先搜索算法解決迷宮問(wèn)題(隊(duì)列)

    這篇文章主要介紹了C語(yǔ)言使用廣度優(yōu)先搜索算法解決迷宮問(wèn)題,結(jié)合迷宮問(wèn)題分析了C語(yǔ)言隊(duì)列廣度優(yōu)先搜索算法的相關(guān)使用技巧,需要的朋友可以參考下
    2017-09-09
  • C++?Qt開(kāi)發(fā)之使用QUdpSocket實(shí)現(xiàn)UDP網(wǎng)絡(luò)通信

    C++?Qt開(kāi)發(fā)之使用QUdpSocket實(shí)現(xiàn)UDP網(wǎng)絡(luò)通信

    Qt 是一個(gè)跨平臺(tái)C++圖形界面開(kāi)發(fā)庫(kù),利用Qt可以快速開(kāi)發(fā)跨平臺(tái)窗體應(yīng)用程序,本文主要介紹如何運(yùn)用QUdpSocket組件實(shí)現(xiàn)基于UDP的網(wǎng)絡(luò)通信功能,需要的可以參考下
    2024-03-03
  • C語(yǔ)言結(jié)構(gòu)體鏈表和指針實(shí)現(xiàn)學(xué)生管理系統(tǒng)

    C語(yǔ)言結(jié)構(gòu)體鏈表和指針實(shí)現(xiàn)學(xué)生管理系統(tǒng)

    這篇文章主要介紹了C語(yǔ)言結(jié)構(gòu)體鏈表和指針實(shí)現(xiàn)學(xué)生管理系統(tǒng),包括學(xué)生檔案管理子系統(tǒng)和學(xué)生成績(jī)管理子系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-06-06
  • Visual Studio新建類(lèi)從默認(rèn)internal改為public

    Visual Studio新建類(lèi)從默認(rèn)internal改為public

    本文將介紹如何將Visual Studio中的internal修飾符更改為public,以實(shí)現(xiàn)更廣泛的訪問(wèn)和重用,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-09-09
  • c++冒泡排序示例分享

    c++冒泡排序示例分享

    冒泡排序是一種計(jì)算機(jī)科學(xué)領(lǐng)域的較簡(jiǎn)單的排序算法,這篇文章主要介紹了c++冒泡排序示例,需要的朋友可以參考下
    2014-03-03

最新評(píng)論