小白请教一个关于C语言字符串的问题?

如下代码所示,我希望将字符串s逆置,为什么如下打印逆置的s1打印不出来?
小白求教,以及如何实现逆置呢?

        string s,s1;
            cin>>s;
            int len=s.length();
            //reverse
            for(int i=0;i<len;i++){
                s1[len-i-1]=s[i];
            }
            cout<<s<<endl;
            cout<<s1<<endl;

加一行赋值就行了,你要做转换,string需要初始化的:

    string s, s1;
    cin >> s;
    int len = s.length();
    s1 = s;
    //reverse
    for (int i = 0; i < len; i++){
        s1[len - i - 1] = s[i];
    }
    cout << s << endl;
    cout << s1 << endl;
    return 0;

你看一下这段代码,要用[]进行赋值,你得初始化:

    string s1 = "123456";
    //string s1 = "";
    for (int i = 0; i < 6;i++)
    {
        s1[i] = 'a' + i;
    }

    cout << s1 << endl;
#include <iostream>
#include <string>
using namespace std;

int main()
{
    string s,s1;
    cin>>s;
    s1 = s; //加上
    int len=s.length();
    //resverse
    for(int i=0;i<len;i++){
        s1[len-i-1]=s[i];
    }
    cout<<s<<endl;
    cout<<s1<<endl;
    return 0;
}