C++学习笔记-string(字符串)

C++ 提供了以下两种类型的字符串表示形式

  • C 风格字符串
  • C++ 引入的 string 类类型

C语言风格的字符串

字符串实际上是使用 null 字符 \0 终止的一维字符数组。

1
2
3
4
5
const char* strptr = "Hello"; // 48 65 6c 6c 6f 00
std::cout << strptr << std::endl;

char strarr[6] = { 'H', 'e', 'l', 'l', 'o', 0 }; // 48 65 6c 6c 6f 00
std::cout << strarr << std::endl;

C++中的 string 类

1
2
3
4
5
6
7
std::string str = "Hello";
std::cout << str << std::endl;

str += "World!";
// string类扩展了很多功能
bool result = str.find("lo") != std::string::npos;
std::cout << result << std::endl;

字符串传值

当你用string作为函数的参数时,应该传递引用,这保证了不会产生复制

1
2
3
4
void PrintStr(const std::string& str)
{
	std::cout << str << std::endl;
}

总结

  1. 字符串其实就是字符数组,它是字符的集合。
  2. 字符串末尾有一个空的终止符0,字符串从指针的内存地址开始,直到碰到0结束。
  3. string类是base-string类的模板版本

https://learn.microsoft.com/zh-cn/cpp/standard-library/basic-string-class

  1. 当你用string作为函数的参数时,应该传递引用,这保证了不会产生复制(值传递会调用拷贝构造)
updatedupdated2025-03-132025-03-13