请教一上C++ string类的字符串是否存在长度限制呢

请问一下C++ string类的字符串是否存在长度限制呢?
今天在写C++的时候,写到了获取路径的字符串,然后尝试将文件拉拽进去(文件源路径的字符串长度大概也以后100~200之间)。我尝试了一下用STRING和字符数组(数组大小300)测试后发现用STRING获取路径尝试进行输出时会报错终止,但是改用字符数组却不会。而我查STRING的资料还是一知半解的,所以前来求教各位。问题如下:

①STRING类的STRING长度是否存在限制~?
②LPSTR与STRING之间的转换直接这样写:(LPSTR)str.c_str() //str为string类的变量名。

在这里先谢过各位回答的朋友与高手们了呵呵。

------解决方案--------------------
1。std::string对于100~200个字符是没有问题的,除非你的机器内存很小
2,std::string::c_str()的返回值是char const*,不要转换为char*/LPSTR,防止恶意修改。若要修改请在std::string对象中修改。
------解决方案--------------------
具体编译器的理论上的最大长度可以这样获取
C/C++ code
    string s;

    cout <<s.max_size() <<endl;