- string 转换为int
- 1.atoi
- 2.strtol
- 3.stoi
- 4. stringstream
- int 转换为string
- 1.sprintf_s
- 2.stringstream
- 3.to_string
#include2.strtolusing namespace std; int main() { int x = 0; string str1 = "10"; string str2 = "-10"; string str3 = "10a"; x = atoi(str1.c_str()); cout << x << endl; x = atoi(str2.c_str()); cout << x << endl; x = atoi(str3.c_str()); cout << x << endl; return 0; }
long int strtol (const char str, char* endptr, int base);
str 为要转换的字符串,endstr 为第一个不能转换的字符的指针,base 为字符串 str 所采用的进制。
#include3.stoiusing namespace std; int main() { int x = 0; string str1 = "10"; string str2 = "-10"; string str3 = "10a"; x = strtol(str1.c_str(), nullptr, 10); cout << x << endl; x = strtol(str2.c_str(), nullptr, 10); cout << x << endl; x = strtol(str3.c_str(), nullptr, 10); cout << x << endl; return 0; }
c11之后才有,需要引入 < string>
#include4. stringstream#include using namespace std; int main() { int x = 0; string str1 = "10"; string str2 = "-10"; string str3 = "10a"; x = stoi(str1); cout << x << endl; x = stoi(str2); cout << x << endl; x = stoi(str3); cout << x << endl; return 0; }
需要引入< sstream>
#include#include using namespace std; int stringToInt(const string& s) { stringstream ss; int result; ss << s; ss >> result; return result; } int main() { string str1 = "10"; string str2 = "-10"; string str3 = "10a"; cout << stringToInt(str1)< int 转换为string 1.sprintf_s #include2.stringstreamusing namespace std; int main() { int number = 10; char buff[128] = { 0 }; sprintf_s(buff, 128, "%d",number); cout << buff << endl; } 需要引入
#include3.to_string#include using namespace std; int main() { int number = 10; stringstream ss; ss << number; string str = ss.str(); cout << str << endl; }; c11之后才可用,需引入string
#include#include using namespace std; int main() { int number = 10; string str =to_string(number); cout << str << endl; };