C++ C2664:当我使用str.append(str[I])时,发生错误 字符串s1; 字符串s2; getline(cin>>固定,s); 对于(int j=0;j
没有使用单个C++ C2664:当我使用str.append(str[I])时,发生错误 字符串s1; 字符串s2; getline(cin>>固定,s); 对于(int j=0;j,c++,visual-studio-2015,C++,Visual Studio 2015,没有使用单个char的append()重载 只有一个重载接受单个字符: string s1; string s2; getline(cin >> fixed, s); for (int j = 0; j < s.length(); j++) { if ((j & 1) == 0) { s1.append(s[j]);//the type of s[j] is char,bu
char
的append()
重载
只有一个重载接受单个字符
:
string s1;
string s2;
getline(cin >> fixed, s);
for (int j = 0; j < s.length(); j++)
{
if ((j & 1) == 0)
{
s1.append(s[j]);//the type of s[j] is char,but the error still
//happening,
cout << tmp << endl;
}
else
{
s2.append(s[j]);
}
}
cout << s1 << " " << s2 << endl;
所以,你可以用这个:
basic_string& append( size_type count, CharT ch );
或者,使用运算符+=
:
s1.append(1, s[j]);
正如错误所说……您尝试将
字符类型
传递给字符串类型
您是对的:s[j]的类型
是一个字符
,但是错误表明append
不需要char
,如果你看一些,你会注意到append
用于附加其他字符串或多个字符,而不是单个字符。使用+=
。请不要编辑编译器的错误消息。只需将它们直接粘贴到问题中即可好的,谢谢。
s1 += s[j];