#include <iostream>
#include <string>
using namespace std;
int main()
{
string s = "12345";
const char* p = s.c_str();
cout << p << endl; //12345
s.append("abced"); // p 成为了野指针
cout << p << endl; //12345
return 0;
}
#include <iostream>
#include <string>
using namespace std;
int main()
{
const char* p = "12345";
string s = "";
s.reserve(10);
// 不要使用 C 语言中的方式操作 C++ 中的字符串
for(int i=0; i<5; i++)
{
s[i] = p[i];
}
//for循环结束之后 m_length = 0 没有改变
cout << s << endl;
return 0;
}
总结:
- string类通过一个数据空间保存字符数据
- string类通过一个成员变量保存当前字符串的长度