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];