string轉換為數值型,stoi 的用法等

2022-10-08 19:39:09 字數 1918 閱讀 9152

從string轉換到數值型

stoi string to integer

​ 將字串轉換為整數,解析str,將其內容解釋為指定基的整數值,並將其作為int值返回。

​ 若idx非空,函式將idx的值設定為str中數字後的第乙個字元的位置。若該引數為空nullptr,則不使用。

​ base預設為10。base(進製)決定了哪些字元是有效,的以及它們的翻譯。若base設為0,所使用的基數由序列中的格式決定。

//函式宣告

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

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

// size_t sz;

string a = " 101dsaada,ff";

string c = " 1010";

string d = "0xff";

cout << stoi(a, &sz) << endl; //101

cout << a[sz] << endl; //d &sz指向了d(第乙個非數字字元)

cout << stoi(c) << endl; //1010

cout << stoi(c, nullptr, 8) << endl; //520

cout << stoi(c, nullptr, 0) << endl; //1010

cout << stoi(d) << endl; //0

cout << stoi(d, nullptr, 0) << endl; //255

cout << stoi(d, nullptr, 2) << endl; //0

string b = "s10";

string e = "100000000000000000000";

cout << stoi(b) << endl; //異常:字串不合法

cout << stoi(e) << endl; //異常:轉換後超出int範圍

stol string to long

stoul string to unsigned long

stoll string to long long

stoull string to unsigned long long

​ 以上和轉換為int的情況類似,只是數字大小範圍有變化。注意無符號數的合法範圍為|0 ~ 2^n -1|,n是位數,在這個範圍內的負數不會丟擲異常,而是輸出為:該負數加上模值2^n。

stod string to double

//函式宣告

double stod (const string& str, size_t* idx = 0);

double stod (const wstring& str, size_t* idx = 0);

// size_t sz;

double e = 10.;

string a = " 10001.e";

string b = "12.5e2a5";

cout << stod(a, &sz) << endl; //10001

cout << a[sz] << endl; //e &sz指向e

cout << stod(b, &sz) << endl; //1250

cout << b[sz] << endl; //a &sz指向a

stof string to double

stold string to long double

和stod同理。

string型別陣列轉換為int型

方法一 定義轉換方法 public static int strtoint string str string arrs new string int arri array.convertall arrs,new converter strtoint 方法二 string str1 new stri...

C 字串轉換為數值型

引言 字串處理中,常常需要把字串轉換成數值型。方法有很多,這裡總結兩種比較簡單的方法。方法一c 自帶函式atoi char s 函式原型 include atoi char s 參考 方法二利用stringstream字串輸入輸出流 include include include using nam...

C 中double 型數值轉換為DateTime

c 中 datetime 為結構型別,表示在公元 0001 年 1 月 1 日午夜 12 00 00 到公元 9999 年 12 月 31 日晚上 11 59 59 之間的日期和時間.gps裝置上的時間定義的乙個double 型值,其開始時間為 1899 12 30 00 00 00.轉換方法如下 ...