将字符串转换为c ++中的整数

时间:2014-03-29 21:09:43

标签: c++

我有一个包含0到60之间数字的字符串。如何将其转换为int?如果char小于10,则char包含前导0。

例如,我想转换char b [] =“08”; to int n = 8或char b [] =“41”;到int n = 41;

4 个答案:

答案 0 :(得分:1)

如果你可以使用boost,那就有很棒的函数boost :: lexical_cast

int x = boost::lexical_cast<int>("123");

c ++ 11也有函数stoi(http://www.cplusplus.com/reference/string/stoi/

int x = std::stoi("123");

答案 1 :(得分:0)

只要字符串以空值终止,您就可以使用atoi()或sscanf进行转换。

示例:

n = atoi(b);

sscanf( b, "%d", &n);

[编辑] 或者你可以采用更纯粹的C ++方式:

#include <sstream> 

    std::stringstream ss;
    ss << b;
    ss >> n;

答案 2 :(得分:0)

简单的C ++方式:

#include <sstream>
#include <string>

int string_to_int (std::string const & str)
{
    std::istringstream iss { str };
    int value;

    iss >> value;
    return value;
}

答案 3 :(得分:-1)

C具有atoi方法,可用于将字符串转换为整数:

int c = atoi("123"); //c == 123

文档here

警告它不会抛出任何异常,并且如果传入的值不是int或者在有效int的范围之外,将导致未定义的行为