首页 > 解决方案 > C ++将字符串转换为int

问题描述

使用 stoi() 方法将字符串转换为 int,但即使有 alpahabet,它也会转换为 int。

string str1 = "45";
string str2 = "31337 test"; 

int myint1 = stoi(str1); // 45
int myint2 = stoi(str2); // 31337

str2 被转换为 int,但我不想要这种转换,因为它有字母表。如果有任何方法可以捕获或阻止这种转换。

标签: c++c++11

解决方案


您可以检查处理的字符数。

string str2 = "31337 test"; 
std::size_t num;

int myint2 = stoi(str2, &num); // 31337
//                      ^^^^

// num (the number of characters processed) would be 5
if (num != str2.length()) {
    ...
}

推荐阅读