如何将0x0000之类的字符串转换为int

时间:2013-05-16 06:39:51

标签: c++ string int type-conversion

如何将字符串像0x0000转换为整数??? 此代码不起作用(Func atof始终返回0)。

String  str = "0xffff";
(unsigned int)atof(str);

2 个答案:

答案 0 :(得分:4)

除了C ++ std::stoi之外,您还可以使用适用于C和C ++的strtol(或strtoul表示无符号):

int i = strtol(str, NULL, 0);

最后一个参数0表示自动选择base为8,10或16,具体取决于字符串的外观。对于0x前缀,将使用base 16。对于0前缀,将使用base 8。对于其他小数,尝试使用基数10.

答案 1 :(得分:3)

假设Stringstd::string,您可以使用std::stoi

std::string str("0xffff", 0, 0);
int i = std::stoi(str);