在C++中将字符串转换为int
时间:2020-02-23 14:29:55 来源:igfitidea点击:
在本文中,我们将研究如何在C++中将字符串转换为int。
通常,我们可能需要将数字字符串转换为整数。
我们可能需要某些方法来快速进行转换
让我们看一下将字符串转换为int的各种方法。
方法1 –使用std :: stoi
要将std :: string对象转换为整数,这是C++中的推荐选项。
这将字符串作为输入并返回整数。
这是一个简单的示例:
#include <iostream> #include <string> using namespace std; int main() { string inp = "102"; cout << "Input String: " << inp << endl; //Use std::stoi() to convert string to integer int res = stoi(inp); cout << "Integer: " << res << endl; return 0; }
输出
Input String: 102 Integer: 102
这也适用于负值字符串。
但是,如果字符串格式不正确,则会抛出" std :: invalid_argument"异常。
因此,如果未验证字符串,则必须在代码中使用异常处理。
#include <iostream> #include <string> using namespace std; int main() { string inp = "Hello"; cout << "Input String: " << inp << endl; //Use std::stoi() to convert string to integer try { //Wrap up code in try-catch block if string is not validated int res = stoi(inp); cout << "Integer: " << res << endl; } catch(std::invalid_argument e) { cout << "Caught Invalid Argument Exception\n"; } return 0; }
输出
Input String: Hello Caught Invalid Argument Exception
希望这对如何在C++中将String转换为Integer有所帮助。
我们还将使用C样式的atoi()函数展示另一种方法。
方法2 –使用atoi()
我们可以使用atoi(char * str)将C字符串(char *)转换为整数。
通过首先转换为C字符串,我们可以将此逻辑应用于std :: string对象。
#include <iostream> #include <string> using namespace std; int main() { string inp = "120"; cout << "Input String: " << inp << endl; //Convert std::string to C-string const char* c_inp = inp.c_str(); //Use atoi() to convert C-string to integer int res = atoi(c_inp); cout << "Integer: " << res << endl; return 0; }
输出
Input String: 120 Integer: 120
如您所见,这为我们提供了与以前相同的结果!