在使用C++刷题的时候,经常需要对输入进行处理,很多时候需要把字符串转为数字,或者数字转为字符串,这时候如何处理? C++11之后这样的转化非常容易。
1. 字符串转为数字(string转为int)
1. 1 stoi(C++11之后)
用法:
#include <iostream>
#include <string>
int main() {
std::string str = "123";
int num;
num = std::stoi(str);
std::cout << num;
return 0; } ```
1.2 atoi,C++11之前或者是对c风格的字符串
用法:
#include <iostream>
#include <cstdlib>
using namespace std;
int main() {
char str[] = "456";
int num = std::atoi(str);
std::cout << "num = " << num;
return 0; } ```
对于std::string str
atoi( str.c_str() )
1.3 采用stringstream
用法:
#include <iostream>
#include <string>
#include <sstream>
using namespace std;
int main() {
stringstream ss;
string str = "7";
int num;
ss << str;
ss >> num;
cout << num << endl;
}
推荐用第一种,简单易懂
2. 数字转为字符串(int转为string)
2.1 to_string()
#include <iostream>
#include <string>
using namespace std;
int main() {
int num = 123;
std::string str = to_string(num);
std::cout << str;
return 0; } ```
2.2 stringstream
#include <iostream>
#include<string>
#include<sstream>
using namespace std;
int main() {
int num = 15;
std::stringstream ss;
ss << num;
std::string strNum = ss.str();
std::cout << strNum;
return 0;
}
```
2.3 itoa(先转化为c风格字符串)
int a = 10;
char *intStr = itoa(a);
string str = string(intStr);
3. 参考资料:
https://www.freecodecamp.org/news/string-to-int-in-c-how-to-convert-a-string-to-an-integer-example/ https://www.programiz.com/cpp-programming/string-int-conversion https://stackoverflow.com/questions/5590381/easiest-way-to-convert-int-to-string-in-c
|