最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C/C++實現(xiàn)數(shù)字與字符串互相轉換的多種方法

 更新時間:2024年08月11日 09:23:55   作者:擺爛小白敲代碼  
在C/C++程序中,會需要把數(shù)字與字符串做出互相轉換的操作,用于實現(xiàn)程序想要的效果,下面將介紹多種方法實現(xiàn)數(shù)字與字符串互相轉換,文中有詳細的代碼示例供大家參考,需要的朋友可以參考下

前言:

在C/C++程序中,會需要把數(shù)字與字符串做出互相轉換的操作,用于實現(xiàn)程序想要的效果。下面將介紹多種方法實現(xiàn)數(shù)字與字符串互相轉換。

字符串轉為數(shù)字

一、利用ASCII

我們知道每個字符都有一個ASCII碼,利用這一點可以將字符-'0'轉為數(shù)字。在字母大小寫轉換時也可以利用這個性質。

#include<iostream>
#include<cstring>
using namespace std;
char ch[]={'1','2','3','4','5'};
int main(){
	for(int i=0;i<strlen(ch);i++){
		cout<<ch[i]-'0'<<" ";
	}
	return 0;
}

 輸出int類型的1,2,3,4,5

二、stoi()

stoi函數(shù)是C++標準庫中的一個函數(shù),用于將字符串轉換為整數(shù),針對于string類型的。stoi函數(shù)是C++11引入的,因此只有在C++11及以上的版本中才能使用該函數(shù)。如果你的編譯器版本較老,不支持C++11,那么就無法使用stoi函數(shù)。學校機房的dev-C++一般是C98標準的,需要自己手動改成C11。

int num=stoi(const string&  str, size_t* idx = 0, int base = 10);

其中,str是需要轉換的字符串;idx是一個指向size_t類型的指針,用于保存轉換結束的位置;base是進制,默認為10進制。一般只給傳第一個參數(shù)即可,也可以利用此函數(shù)實現(xiàn)進制轉換。

類似的還有stol()、stof()、stod(),分別將字符串類型轉換成long long、float、double類型。

#include<iostream>
#include<cstring>
 
using namespace std;
string s="12345";
int main(){
	int a=stoi(s);
	long long b=stol(s);
	double c=stod(s);
	float d=stof(s);
	cout<<"int:"<<a<<endl;
	cout<<"long long:"<<b<<endl;
	cout<<"double:"<<c<<endl;
	cout<<"float:"<<d<<endl;
	return 0;
}

三、atoi()

atoi()函數(shù)是C語言中的一個函數(shù),主要用于將字符串轉換為整數(shù)。針對于字符數(shù)組,類似的還有atol()、atof()、atod()。

int num=atoi(const char *str);

其中,str是一個以null結尾的字符串,表示要轉換的整數(shù)。

該函數(shù)將從字符串的開頭開始解析,直到遇到第一個非數(shù)字字符為止。如果開頭是一個正號或負號,它也會解析為整數(shù)的一部分。如果字符串中的第一個非空格字符不是有效的數(shù)字字符或正負號,則返回0。

#include<iostream>
#include<cstring>
 
using namespace std;
char s1[]="12345";
char s2[]="qwe";
int main(){
	int a=atoi(s1);
	long long b=atol(s2);
	cout<<"int:"<<a<<endl;
	cout<<"long long:"<<b<<endl;
	return 0;
}

四、sscanf()

sscanf函數(shù)是一個用來將字符串按照指定格式解析的函數(shù)。它接受一個輸入字符串和一個格式字符串作為參數(shù),并根據(jù)格式字符串的指示將字符串中的數(shù)據(jù)解析為對應的變量中。主要是針對于字符數(shù)組。

sscanf(str,"%d",&num);//str字符數(shù)組,%dint類型,num轉換完成數(shù)字

代碼應用如下:

#include<iostream>
#include<cstring>
 
using namespace std;
char s1[]="12345";
char s2[]="qwe";
int main(){
	int a;
	long long b;
	sscanf(s1,"%d",&a);
	sscanf(s2,"%lld",&b);//轉字母會成亂碼
	cout<<"int:"<<a<<endl;
	cout<<"long long:"<<b<<endl;
	return 0;
}

五、stringstream

stringstream是C++中的一個類,可以用來對字符串進行輸入輸出操作。它是基于字符串的流,可以用來將字符串轉換為其他類型的數(shù)據(jù),以及將其他類型的數(shù)據(jù)轉換為字符串。stringstream類的頭文件是<sstream>,我們需要包含這個頭文件才能使用stringstream類。

#include<iostream>
#include<sstream>
#include<cstring>
#include<typeinfo>
 
using namespace std;
int main(){
	stringstream ss;
	string s="12345";
	int num;
	ss<<s;//將字符串讀入字符串流 
	ss>>num;//從字符串流中讀取數(shù)據(jù)轉換為整數(shù)
	cout<<typeid(num).name()<<" "<<num<<endl;
	return 0; 
}

數(shù)字轉為字符串

一、利用ASCII

字符轉數(shù)字可以-'0',數(shù)字轉字符那么就可以+'0',還是利用了ASCII碼值的特性。

#include<iostream>
#include<cstring>
using namespace std;
int nums[]={1,2,3,4,5};
int main(){
	for(int i=0;i<sizeof(nums)/sizeof(int);i++){
		cout<<nums[i]+'0'<<" ";
	}
	return 0;
}

注意:轉換結果為49 50 51 52 53 ,對應ASCII碼值,因為原理就是用ASCII碼轉換的。

二、to_string()

to_string函數(shù)是C++標準庫提供的一個函數(shù),用于將不同類型的數(shù)據(jù)轉換為字符串??梢詫nt、float、double、long long等類型轉換為string類型。需要包含頭文件#include<cstring>

#include<iostream>
#include<cstring>
using namespace std;
int a=24;
long long b=12345678;
double c=3.1415;
string s;
int main(){
	s=to_string(a);
	cout<<s<<endl;
	s=to_string(b);
	cout<<s<<endl;
	s=to_string(c);
	cout<<s<<endl;
	return 0;
}

三、itoa()

itoa函數(shù)用于將整數(shù)轉換為字符串。類似的還有l(wèi)toa、ftoa、dtoa分別將long long、float、double轉換為字符串類型。針對于字符數(shù)組。

itoa(num,str,10);

第一個參數(shù)是待轉換的數(shù)字,第二個參數(shù)是轉換完成的字符數(shù)組,第三個是轉換的進制數(shù),默認10進制。

#include<iostream>
#include<cstring>
using namespace std;
int n=12345;
char str[10];
int main(){
	itoa(n,str,10); 
	cout<<str<<endl;
	return 0;
}

 結果為12345

四、sprintf()

sprintf()函數(shù)是c語言庫中的函數(shù),可以將數(shù)字轉換為字符串類型,一般轉換為字符數(shù)組。

sprintf(str,"%d",num);

str是轉換完成的字符數(shù)組,%d是類型,num是待轉換的數(shù)字。 

#include<iostream>
#include<cstring>
using namespace std;
int n=12345;
char str[10];
int main(){
	sprintf(str,"%d",n); 
	cout<<str<<endl;
	return 0;
}

結果為:12345

五、stringstream

與字符串轉數(shù)字的一樣,可以互相轉換,同時還是要包含頭文件<sstream>,具體使用如下

#include<iostream>
#include<sstream>
#include<cstring>
#include<typeinfo>
 
using namespace std;
int main(){
	stringstream ss;
	string s="12345";
	int num=54321;
	ss<<num;//將int類型的數(shù)據(jù)寫入字符串流中
	s=ss.str();//將字符串流中的數(shù)據(jù)轉換為string類型
	cout<<typeid(s).name()<<" "<<num<<endl;
	return 0; 
}

以上就是C/C++實現(xiàn)數(shù)字與字符串互相轉換的多種方法的詳細內容,更多關于C/C++數(shù)字與字符串互相轉換的資料請關注腳本之家其它相關文章!

相關文章

  • C語言表達式求值中類型轉換和優(yōu)先級等問題詳解

    C語言表達式求值中類型轉換和優(yōu)先級等問題詳解

    表達式求值是一個常見的問題,可以用C語言實現(xiàn),下面這篇文章主要給大家介紹了關于C語言表達式求值中類型轉換和優(yōu)先級等問題的相關資料,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下
    2023-05-05
  • C++ 中動態(tài)鏈接庫--導入和導出的實例詳解

    C++ 中動態(tài)鏈接庫--導入和導出的實例詳解

    這篇文章主要介紹了C++ 中動態(tài)鏈接庫--導入和導出的實例詳解的相關資料,希望通過本文能幫助到大家,需要的朋友可以參考下
    2017-09-09
  • c++中vector的使用和模擬實現(xiàn)

    c++中vector的使用和模擬實現(xiàn)

    這篇文章主要介紹了c++中vector的使用和模擬實現(xiàn),本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-04-04
  • 關于C語言 const 和 define 區(qū)別

    關于C語言 const 和 define 區(qū)別

    這篇文章主要介紹了關于C語言 const 和 define 區(qū)別 的相關資料,需要的朋友可以參考下面文章內容
    2021-09-09
  • 如何在C++類的外部調用類的私有方法

    如何在C++類的外部調用類的私有方法

    這篇文章主要介紹了如何在C++類的外部調用類的私有方法,文章圍繞主題展開詳細的內容介紹,具有一定的參考價值,需要的朋友可以參考一下
    2022-09-09
  • C++獲取當前進程IAT的方法

    C++獲取當前進程IAT的方法

    這篇文章主要介紹了C++獲取當前進程IAT的方法,實例講述了IAT(導入地址表)的獲取方法,在Windows應用程序開發(fā)中有著非常實用的應用價值,需要的朋友可以參考下
    2014-10-10
  • vc中float與DWORD的互想轉換實現(xiàn)代碼

    vc中float與DWORD的互想轉換實現(xiàn)代碼

    這篇文章主要介紹了vc中float與DWORD的互想轉換實現(xiàn)代碼,需要的朋友可以參考下
    2017-06-06
  • Opencv提取連通區(qū)域輪廓的方法

    Opencv提取連通區(qū)域輪廓的方法

    這篇文章主要為大家詳細介紹了Opencv提取連通區(qū)域輪廓的方法,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-01-01
  • C++隱式轉換問題分析及解決辦法

    C++隱式轉換問題分析及解決辦法

    在本篇文章里小編給大家整理了關于C++隱式轉換問題分析及解決辦法,有需要的朋友們可以學習下。
    2020-02-02
  • Cocos2d-x UI開發(fā)之場景切換代碼實例

    Cocos2d-x UI開發(fā)之場景切換代碼實例

    這篇文章主要介紹了Cocos2d-x UI開發(fā)之場景切換代碼實例,cocos2d-x中的場景切換是通過導演類調用相應的方法完成的,本文通過代碼和詳細注釋來說明,需要的朋友可以參考下
    2014-09-09

最新評論

平舆县| 白河县| 阿拉善盟| 都江堰市| 定边县| 塘沽区| 凤山县| 沅陵县| 吴川市| 通州区| 徐汇区| 肥东县| 宜阳县| 日喀则市| 济宁市| 佛坪县| 健康| 渑池县| 平江县| 巫山县| 罗山县| 海晏县| 巨野县| 庆元县| 德清县| 同心县| 来宾市| 奉新县| 吉首市| 安吉县| 定西市| 晋州市| 西乌| 佛冈县| 抚顺县| 青州市| 怀集县| 九龙坡区| 黔江区| 江源县| 集安市|