for (int v = 0; v <= WordChosen.length();v++)
{
if(Letter == WordChosen[v])
{
WordChosenDuplicate.replace(v,1,Letter);
}
}
我收到此错误
“错误4错误C2664: “的std :: basic_string的&LT; _Elem,_Traits,_AX&GT; &安培;性病:: basic_string的&LT; _Elem,_Traits,_AX&GT; ::替换(__ W64 unsigned int,__ w64 unsigned int,const 的std :: basic_string的&LT; _Elem,_Traits,_AX&GT; &amp;)':无法转换参数3 'char'到'const 的std :: basic_string的&LT; _Elem,_Traits,_AX&GT; &安培;” c:\ documents和settings \ main \ my 文件\单\第二 年\ tp2 \ hangman \ hangman \ hangman.cpp 147 “
将此行放入
后,我才收到错误WordChosenDuplicate.replace(v,1,Letter);
答案 0 :(得分:3)
std::string::replace()
函数的参数不正确,或者您需要调用replace
的不同重载。类似的东西:
WordChosenDuplicate.replace(v, // substring begining at index v
1, // of length 1
1, // replace by 1 copy of
Letter); // character Letter
答案 1 :(得分:3)
或
WordChosenDuplicate.replace(v,1,std::string(Letter, 1));
答案 2 :(得分:1)
你想要达到什么目的?您尝试调用的replace
版本不存在 - 正如编译器告诉您的那样。您的意思是these versions中的哪一个?
答案 3 :(得分:1)
WordChosenDuplicate似乎是一个std :: string,在这种情况下,replace()方法中的第三个参数应该是另一个std :: string或c-style const char *。您正在尝试传递单个字符(“Letter”)。错误是说没有版本的replace()将char作为第三个参数。