string和int,doule...數字之間的快速轉換
阿新 • • 發佈:2018-11-25
####
string 物件與 sscanf 函式
在 C 語言中,sscanf 函式很管用,它可以把一個字串按你需要的方式分離出子串,
甚至是數字。下面這個程式演示了 sscanf 函式的具體用法:
#include <string> #include <iostream> using namespace std; int main(int argc, char* argv[]) { string s1,s2,s3; char sa[100],sb[100],sc[100]; //將字串分離成子串,分隔符為空格 sscanf("abc 123 pc","%s %s %s",sa,sb,sc); s1=sa; s2=sb; s3=sc; cout<<s1<<" "<<s2<<" "<<s3<<endl; //將字串分離成數字,分隔符為空格 //當用到數字的時候,跟 scanf 一樣,它要傳指標地址 int a,b,c; sscanf("1 2 3","%d %d %d",&a,&b,&c); cout<<a<<" "<<b<<" "<<c<<endl; //將字串分離成數字,分隔符為“,”和“$” //當用到數字的時候,跟 scanf 一樣,它要傳指標地址 int x,y,z; sscanf("4,5$6","%d,%d$%d",&x,&y,&z); cout<<x<<" "<<y<<" "<<z<<endl; return 0; }
執行結果:
abc 123 pc
1 2 3
4 5 6
##########################2.3.17
string 物件與數值相互轉換
有時候,string 物件與數值之間需要相互轉換,下面這個例子詳細說明了如何完成這
項工作:
#include <iostream> #include <string> #include <sstream> using namespace std; //C++方法:將數值轉換為 string string convertToString(double x) { ostringstream o; if (o << x) return o.str(); return "conversion error";//if error } //C++方法:將 string 轉換為數值 double convertFromString(const string &s) { istringstream i(s); double x; if (i >> x) return x; return 0.0;//if error } int main(int argc, char* argv[]) { //將數值轉換為 string 的第一種方法:C 方法 char b[10]; string a; sprintf(b,"%d",1975); a=b; cout<<a<<endl; //將數值轉換為 string 的第二種方法:C++方法 string cc=convertToString(1976); cout<<cc<<endl; //將 string 轉換為數值的方法:C++方法 string dd="2006"; int p=convertFromString(dd)+2; cout<<p<<endl; return 0; }