【转】C++中的字符串(String)和数值转换
生活随笔
收集整理的這篇文章主要介紹了
【转】C++中的字符串(String)和数值转换
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
『寫在前邊』
因為寫PAT總是遇到字符串(主要是String)和數值之間的轉化,所以整理一下以便好復習。
『String類型的字符串』
這里數值和字符串相互轉換的例子,使用的是stringstream函數,在c++11當中有定義好的現成的函數取調用,非常方便。
1.【字符串轉換為數值】
| to_string(val) | 把val轉換成string |
| stoi(s,p,b) | 把字符串s從p開始轉換成b進制的int |
| stol(s,p,b) | 把字符串s從p開始轉換成b進制的long |
| stoul(s,p,b) | 把字符串s從p開始轉換成b進制的unsigned long |
| stoll(s,p,b) | 把字符串s從p開始轉換成b進制的long long |
| stoull(s,p,b) | 把字符串s從p開始轉換成b進制的unsigned long long |
| stof(s,p) | 把字符串s從p開始轉換成float |
| stod(s,p) | 把字符串s從p開始轉換成double |
| stold(s,p) | l把字符串s從p開始轉換成long double |
?
?
2.【數值轉換為字符串】
用stringstream即可把多種數值類型轉換為String類型的字符串
#include <string> #include <sstream> #include <iostream> using namespace std; int main(){double a = 123.32;string res;stringstream ss;ss << a;ss >> res;//或者 res = ss.str();cout<<res; return 0; }『Char數組類型的字符串』
這里是使用C語言提供了幾個標準庫函數,可以將任意類型(整型、長整型、浮點型等)的數字和字符串相互轉換。
?
| ?atof(s) | 將字符串s[n]轉換為雙精度浮點型值。 |
| ?atoi(s) | 將字符串s[n]轉換為整型值。 |
| ?atol(s) | 將字符串s[n]轉換為長整型值。 |
| strtod(s,*p,b) | 將字符串s[n]轉換為b進制雙精度浮點型值,到p停止,并報告不能被轉換的所有剩余數字。 |
| strtol(s,*p,b) | 將字符串s[n]轉換為b進制長整值,到p停止,并報告不能被轉換的所有剩余數字。 |
| strtoul(s,*p,b) | 將字符串s[n]轉換為b進制無符號長整型值,到p停止,并報告不能被轉換的所有剩余數字。 |
?
#include <cctype> #include <cstdio> #include <cstdlib> int main(void ) {char s[100]="1431";printf("The number integer is %d\n",atoi(s));return 0; }?
?
#include <cstdlib> #include <cstdio> main() {double a=123.45;double b=-1234.56;char ptr[50];gcvt(a,5,ptr);printf("a value=%s\n",ptr);gcvt(b,6,ptr);printf("b value=%s\n",ptr); }總結
以上是生活随笔為你收集整理的【转】C++中的字符串(String)和数值转换的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: arcgis字段计算器--随机数
- 下一篇: s3c2440移植MQTT