适当的std::string赋值习惯用法是使用C++标准库中的std::string类,它是一个具有动态大小的字符串类,可以方便地表示和操作字符串。以下是一些常见的std::string赋值习惯用法:
- 使用字符串字面量初始化std::string对象:std::string s = "Hello, world!";const char* cstr = "Hello, world!";
std::string s(cstr);char arr[] = {'H', 'e', 'l', 'l', 'o', ',', ' ', 'w', 'o', 'r', 'l', 'd', '!'};
std::string s(arr);std::string s = "Hello, world!";
for (char c : s) {
std::cout << c;
}std::string s = "Hello, world!";
s.erase(0, 8); // 删除前8个字符
s.insert(6, "beautiful "); // 在第6个字符后插入"beautiful "
s.replace(0, 7, "Goodbye"); // 替换前7个字符为"Goodbye"std::string s1 = "Hello, ";
std::string s2 = "world!";
std::string s3 = s1 + s2; // 拼接s1和s2std::string s1 = "Hello, world!";
std::string s2 = "Goodbye, world!";
s1.swap(s2); // 交换s1和s2的内容
- 使用字符指针初始化std::string对象:
- 使用字符数组初始化std::string对象:
- 使用范围for循环遍历std::string对象:
- 使用std::string的成员函数操作字符串:
- 使用std::string的重载运算符进行字符串拼接:
- 使用std::string的swap()函数交换两个字符串的内容:
需要注意的是,在使用std::string时,应该避免使用C风格的字符串函数,如strcpy()、strcat()等,因为它们可能会导致内存泄漏或缓冲区溢出等安全问题。同时,也应该避免使用std::string的构造函数或成员函数来创建或操作字符串,因为这些函数可能会导致性能问题或内存泄漏等问题。