我是CPP的新手。
我正在尝试创建小型控制台应用。
我的qustion是,有没有办法将char数组更改为整数...?!
例如:
char myArray[]= "12345678"
到int = 12345678
......?!
TNX
答案 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()。