C++ 提供了以下两种类型的字符串表示形式
- C 风格字符串
- C++ 引入的 string 类类型
字符串实际上是使用 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;
|
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;
}
|
- 字符串其实就是字符数组,它是字符的集合。
- 字符串末尾有一个空的终止符0,字符串从指针的内存地址开始,直到碰到0结束。
- string类是base-string类的模板版本
https://learn.microsoft.com/zh-cn/cpp/standard-library/basic-string-class
- 当你用string作为函数的参数时,应该传递引用,这保证了不会产生复制(值传递会调用拷贝构造)