1) Эта string a="";
длина символа здесь равна 0, поэтому его размер также равен 0.
2)
a[0]='a';
a[1]='b';
a[2]='c';
это неопределенное поведение Вы получаете доступ за пределами
3) поэтому добавьте a.resize(3);
к вашему коду, который
#include<iostream>
#include<string>
using namespace std;
int main()
{
string a="";
a.resize(3); // this will resize
a[0]='a';
a[1]='b';
a[2]='c';
cout<<"length of a: "<< a.length();
}
или string a="xxx"
; сначала заполните несколько символов или используйте push_back();
как
a.push_back('a');
a.push_back('b');
a.push_back('c');