首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> C++ >> 關於C++

C++ 字符串與整數轉換完全指南

     編輯:關於C++

string → int

方法 1:atoi (C 風格)

string s = "1234";
int x = atoi(s.c_str()); // 需轉為 const char*

缺點:無錯誤檢測,非數字字串返回 0,溢出行為未定義。

方法 2:stoi (C++11 推薦)

string s = "1234";
int x = stoi(s); // 拋出 invalid_argument / out_of_range 異常

支援進制參數:stoi(s, nullptr, 16)。

方法 3:stringstream (通用、舊標準兼容)

string s = "1234";
int x;
stringstream ss(s);
ss >> x;

int → string

方法 1:to_string (C++11 推薦)

int x = 1234;
string s = to_string(x);

方法 2:stringstream

int x = 1234;
stringstream ss;
ss << x;
string s = ss.str();
// 注意:重用 ss 時需 ss.str("") 而非 ss.clear()

方法 3:sprintf (C 風格,高性能)

int x = 1234;
char buf[32];
sprintf(buf, "%d", x);
string s(buf);

常見陷阱

  • stringstream 重用必須 ss.str("") 清空內容,ss.clear() 僅重置狀態標誌。
  • atoi 不報錯,建議改用 strtol 或 stoi。
  • 大數轉換需用 stoll/to_string(long long)。

性能建議

高頻調用場景:to_string / stoi 通常最快;極致性能可用 sprintf / 手寫整數轉字符串(查表法)。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved