1. 程式人生 > >string和int,doule...數字之間的快速轉換

string和int,doule...數字之間的快速轉換

####

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;
}