如何在c ++中将值char数组的类型更改为int?

时间:2014-03-09 08:32:47

标签: c++ arrays char int

我是CPP的新手。

我正在尝试创建小型控制台应用。

我的qustion是,有没有办法将char数组更改为整数...?!

例如:

char myArray[]= "12345678"int = 12345678 ......?!

TNX

4 个答案:

答案 0 :(得分:6)

您不会“更改”某种类型。你想要的是创建一个特定类型的对象,使用另一种类型的对象作为输入。

由于您不熟悉C ++,因此您应该知道不建议在字符串中使用数组。使用真正的字符串:

std::string myString = "12345678";

然后,您有两种标准方法来转换字符串,具体取决于您使用的C ++版本。对于“旧”C ++,std::istringstream

std::istringstream converter(myString);
int number = 0;
converter >> number;
if (!converter) {
    // an error occurred, for example when the string was something like "abc" and
    // could thus not be interpreted as a number
}

在“新”C ++(C ++ 11)中,您可以使用std::stoi

int number = std::stoi(myString);

有错误处理:

try {
    int number = std::stoi(myString);
} catch (std::exception const &exc) {
    // an error occurred, for example when the string was something like "abc" and
    // could thus not be interpreted as a number
}

答案 1 :(得分:1)

使用boost::lexical_cast

#include <boost/lexical_cast.hpp>

char myArray[] = "12345678";
auto myInteger = boost::lexical_cast<int>(myArray);

答案 2 :(得分:0)

atoi函数就是这样做的。

答案 3 :(得分:0)

除了使用符合C ++ 11标准的编译器的atoi(),您可以使用std::stoi()