代码如下:
bool Vehicle::checkID(std::string id)
{
std::vector<int> digits;
for (char c : id)
{
if(std::isdigit(c))
{
digits.push_back(atoi(c));
}
else
{
digits.push_back(int(c));
}
}
我不知道他为什么会为“ digits.push_back(atoi(c))”抛出此错误。
我是一个初学者,我知道这对您来说并不难。
答案 0 :(得分:5)
你不能做:
atoi(c)
atoi()
期望为char *
。你可能想要
digits.push_back(c - '0');
答案 1 :(得分:2)
函数atoi()
采用单个const char *
类型作为参数。
您正在使用char
参数进行调用。编译器不知道如何从一种转换为另一种。
atoi
实际上想要一个字符串作为输入,您不能使用单个字符来调用它。字符串始终需要一个零字符作为终止符。