在C++編程中,時常會遇到數值和字符串之間的轉換,C-Style的atoi,atol,strtod,strtol,strtoul等函數在功能上有時候會略顯不足,當然在C++中實現數值和字符串轉換的形式各種各樣,本文對自己在編程中遇到的情況進行了簡單的總結。
1) 數值類型轉為字符類型
char str[255];
int num = 100;
sprintf(str, "%d", num);
當然對於各種方式,可以進行任意的擴展和字符的鏈接。如:
char str[255];
int num = 100;
char postStr[]=".jpg";
sprintf(str, "%d absc %s", num,postStr);
除此,可以根據需要進行擴展。
2)使用stringstream對象進行轉換
stringstream ss;
int num = 100;
string str;
ss<<num; //
ss>>str; // 輸出 100的字符串
同樣,可以任意的對ss進行擴展,如 :
ss<<"E:\\images\\<< num<<".jpg"; // 合成一個路徑
3)字符串轉換為數值
stringstream ss;
int num = 0;
string str(“1000”);
ss<<str;
ss>>num; // num的值就變成了1000
4)使用CString來格式化數值
CString cstr;
int num = 100;
string str(".jpg");
cstr.format("E:\\images\\%d%s",num,str);