“std::string”转换为“const char *”
时间: 2024-09-15 12:12:22 浏览: 50
std::string、char*、const char*转托管byte数组或托管字符串String
4星 · 用户满意度95%
`std::string` 是 C++ 标准库中的字符串类型,它是一个动态大小的字符数组,方便处理字符串。当你需要将 `std::string` 转换为 `const char *` 类型(常量字符指针),可以使用 `.c_str()` 函数。这个函数返回的是原始字符数组的地址,并保证其生命周期与 `std::string` 对象一致。
以下是转换的基本步骤:
```cpp
std::string str = "Hello, World!"; // 假设我们有一个字符串
const char *cstring = str.c_str(); // 调用 c_str() 获取指向内部存储的常量指针
// 现在你可以使用 cstring 作为 C 风格字符串传递给其他函数
void printString(const char* s) {
printf("%s\n", s); // 输出: Hello, World!
}
printString(cstring);
```
注意,虽然 `cstring` 看起来像一个指针,但它实际上是由 `std::string` 实现的,并在 `std::string` 对象生命周期内保持有效。如果你尝试修改 `cstring` 所指向的内容,这可能会导致未定义的行为,除非你在 `std::string` 和 `cstring` 的作用域都内进行操作。
阅读全文