📅  最后修改于: 2023-12-03 14:53:49.985000             🧑  作者: Mango
在编程中,有时候需要将字符串转换为整数。例如从用户输入中读取数字时,输入的内容通常是字符串形式的。在C++中,我们可以使用stoi()函数来将字符串转换为整数。
下面是一个简单的C++程序,它使用stoi()函数将字符串转换为整数并输出结果:
#include <iostream>
#include <string>
using namespace std;
int main() {
string str = "123";
int num = stoi(str);
cout << "The integer value of the string is: " << num << endl;
return 0;
}
输出结果为:
The integer value of the string is: 123
上面的程序中使用了头文件<string>
,以便使用string数据类型和stoi()函数。同时使用了命名空间std::
,这样我们就可以直接使用string和cout。
下面是stoi()函数的原型:
int stoi(const string& str, size_t* idx = 0, int base = 10);
函数的第一个参数是要转换的字符串。第二个参数是指向存储第一个无效字符的指针的指针。默认值为0,表示不返回无效字符的指针。最后一个参数是要使用的进制,默认为10。
在使用stoi()函数时要注意异常处理。如果转换失败,stoi()函数会抛出一个invalid_argument或out_of_range异常。使用try-catch语句可以捕获异常并处理错误。
下面是一个例子:
#include <iostream>
#include <string>
using namespace std;
int main() {
string str = "abc";
try {
int num = stoi(str);
cout << "The integer value of the string is: " << num << endl;
}
catch(const invalid_argument& ia) {
cerr << "Invalid argument: " << ia.what() << endl;
}
catch(const out_of_range& oor) {
cerr << "Out of range: " << oor.what() << endl;
}
return 0;
}
输出结果为:
Invalid argument: stoi
使用stoi()函数可以方便地将字符串转换为整数。在实际编程中,我们应该养成良好的异常处理习惯,以便在出现错误时及时捕获并处理异常。