【发布时间】:2012-10-10 14:18:01
【问题描述】:
我正在尝试编写一个函数,该函数将字符串数组作为参数,将其转换为 int 数组,然后返回新数组。我认为使用“Atoi”会很简单,但显然你不能像我尝试的那样使用它。
这是我目前的代码。
int GameHandler::convertToInt(string array[])
{
int tmp=0;
string arr[20]=array;
int values[20];
for(int i=0;i<20;i++)
values[i]=0;
for(int i=0;i<20;i++)
{
tmp=atoi(arr[i]);
values[i]=tmp;
}
return values;
}
这是我从编译器得到的错误信息:
GameHandler.cpp:在成员函数'int GameHandler::convertToInt(std::string*)': GameHandler.cpp:60:20: 错误:从‘std::string* {aka std::basic_string*}’转换 到非标量类型‘std::string {aka std::basic_string}’ 请求的 GameHandler.cpp:67:24: 错误: 无法转换‘std::string {aka std::basic_string}' 到 'const char*' 用于参数 '1' ‘int atoi(const char*)’ GameHandler.cpp:71:12: 错误: 无效 从“int*”转换为“int”[-fpermissive] GameHandler.cpp:61:9: 警告:返回的局部变量“值”的地址 [启用者 默认]
【问题讨论】:
-
您是否尝试理解错误代码?
-
该函数不接受字符串数组,它接受一个指向字符串的指针。
标签: c++ linux arrays type-conversion