尝试使用if语句比较字符串,但会遇到运算符错误。如何解决这个问题,使语句比较字符串?使用Code :: Blocks作为编译器。
完整的原始代码Pastebin:https://pastebin.com/DJGqJBwu(由于已解决问题,不再公开)
(注意:原始代码中的大多数注释都是为了进行实验,总体上有很多错误,我以后可以再讨论)
这是我要为井字游戏创建的排行榜。我尝试了多种方法来比较字符串以解决此问题,例如.compare。
void admin (string names, int nameW[10], int wins[10], unsigned int a[10]) //called variables from main
{
char repeat = 'y'; //used for function loop
char resetAll; //used elsewhere
int winCount; //used elsewhere
string reset;
string modify; //used elsewhere
string admin; //used elsewhere
cin >> reset;
//Reset
if (reset==names[0])
{
wins[0] = 0;
}
}
构建日志:
error: no match for 'operator==' (operand types are 'std::__cxxll::string {aka std::__cxll::basic_string<char>}' and '__gnu_cxx::__alloc_traits<std::allocator<char> >::value_type {aka char}')
我期望reset变量与names [0]变量相同,以便代码可以执行。结果是代码无法生成和运行(无法测试程序)。
答案 0 :(得分:0)
问题出在管理员函数参数中,字符串“名称”没有声明数组。
转弯:
void admin (string names, ...
进入:
void admin (string name[10], ...