c++ char* 转char[]
时间: 2023-09-13 19:07:09 浏览: 128
CString和char[]、 char*互转
在 C++ 中,char* 和 char[] 都可以用来表示字符串。但是它们之间有一些区别。char* 是一个指向字符的指针,而 char[] 是一个字符数组。如果你想将 char* 转换为 char[],你可以通过以下步骤进行操作:
1. 首先,确定 char* 指针指向的字符串的长度。可以使用 strlen 函数来获取字符串的长度。
2. 声明一个新的 char[] 数组,并为其分配足够的内存空间,以容纳字符串的长度加上一个额外的字符用于表示字符串的结束符 '\0'。
3. 使用 strncpy 函数将 char* 指针指向的字符串复制到新的 char[] 数组中。确保在复制过程中包含字符串的结束符。
以下是一个示例代码:
```c++
#include <cstring>
int main() {
char* str = "Hello, world!"; // 假设有一个 char* 指针指向字符串
int len = strlen(str); // 获取字符串的长度
char newStr[len + 1]; // 声明一个新的 char[] 数组,长度加1,用于结束符 '\0'
strncpy(newStr, str, len); // 将字符串复制到新的数组中
newStr[len] = '\0'; // 添加字符串结束符
// 现在 newStr 是一个与 char* 相对应的 char[] 数组
return 0;
}
```
请注意,在进行这种转换时,你需要确保为新的 char[] 数组分配足够的内存空间,以容纳字符串的长度加上一个额外的字符。此外,要小心避免数组越界或内存泄漏等问题。
阅读全文