CString转 char*
时间: 2023-06-07 17:09:07 浏览: 116
好的,您想了解关于 CString 转 char* 的问题,对吗?对于这个问题,我可以给您提供一个简单的解决方案。可以使用 CString 类的 GetBuffer 方法获取 C-style 字符串的指针,将其赋值给 char* 类型的变量,然后调用 CString 类的 ReleaseBuffer 方法或者在获取完指针后使用 CString 类的内部 API 来释放指针。请注意,这个方法不是线程安全的,需要考虑线程同步和安全性。希望这个解决方案能够帮到您!
相关问题
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 *
在 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);
```
阅读全文