cstring转char *
时间: 2023-07-23 12:03:31 浏览: 171
在 C++ 中,`cstring` 通常指的是以 null 结尾的字符数组,即 `char` 类型的数组。而 `char *` 则是指向字符数组首元素的指针。
要将 `cstring` 转换为 `char *`,只需要将字符数组的名称作为参数传递即可。因为字符数组的名称代表了该数组首元素的地址,所以可以直接将其转换为 `char *` 类型。
例如,假设有以下 `cstring`:
```cpp
char str[] = "hello";
```
要将其转换为 `char *`,可以这样写:
```cpp
char *ptr = str;
```
或者直接在函数调用时传递 `str` 即可:
```cpp
void foo(char *str) {
// ...
}
foo(str);
```
相关问题
CString转char*
可以使用CString的GetBuffer()函数或者operator LPCTSTR()来获取一个char*类型的指针。
示例代码:
```c++
CString str = "Hello World!";
char* p = str.GetBuffer(str.GetLength()); // 获取指向字符数组的指针
// 使用p操作字符数组
str.ReleaseBuffer(); // 释放指针
```
或者
```c++
CString str = "Hello World!";
const char* p = (LPCTSTR)str; // 强制类型转换为char*类型的指针
// 使用p操作字符数组
```
CString转 char *
CString是MFC中的一个字符串类,并且是基于Unicode字符集的。如果要将CString转换为char *类型,可以使用CString的GetBuffer()函数。
示例代码:
```c++
CString str = _T("Hello");
char *pStr = (char *)str.GetBuffer(0);
```
需要注意的是,GetBuffer()函数返回的是一个TCHAR类型的指针,需要强制转换为char *类型。另外,GetBuffer()函数的参数为0时,表示返回CString内部所持有的字符缓冲区的指针,如果参数不为0,则表示请求CString对象重新分配一个指定大小的字符缓冲区。在使用完毕后,需要调用CString的ReleaseBuffer()函数来释放缓冲区。
示例代码:
```c++
CString str = _T("Hello");
char *pStr = (char *)str.GetBuffer(0);
// do something with pStr
str.ReleaseBuffer();
```
阅读全文