char *转cstring
时间: 2023-07-23 17:44:19 浏览: 37
首先,我需要澄清一下问题的意思。在 C++ 中,没有 `char*` 和 `cstring` 两种类型,可能是您想要将 `char*` 类型的数据转换成 C++ 中的 `std::string` 类型,也有可能是您想要将 C 语言中的字符数组(也就是字符串)转换成 C++ 中的 `std::string` 类型。下面分别介绍这两种类型的转换方法:
1. `char*` 转换成 `std::string`
```cpp
char* cstr = "Hello, World!"; // 假设 cstr 指向一个字符数组
std::string str(cstr); // 直接使用 char* 初始化 std::string 对象
```
2. C 语言中的字符数组转换成 `std::string`
```cpp
char cstr[] = "Hello, World!"; // 定义一个字符数组
std::string str(cstr); // 直接使用字符数组初始化 std::string 对象
```
需要注意的是,在将 `char*` 或字符数组转换成 `std::string` 对象时,要确保字符串以 NULL 结尾,也就是字符串的最后一个字符是 '\0',否则可能会出现未知错误。
相关问题
char* 转Cstring
char* 和 Cstring 都是 C 语言中表示字符串的方式,但是它们的类型不同。char* 是指向字符数组的指针,而 Cstring 是 C++ 中的一个字符串类。如果要将 char* 转换为 Cstring,可以使用 C++ 标准库中的 string 类,先将 char* 转换为 string,再将 string 转换为 Cstring。具体实现可以参考以下代码:
```c++
#include <iostream>
#include <string>
using namespace std;
int main() {
char* str = "hello world";
string s(str);
const char* cstr = s.c_str();
cout << "Cstring: " << cstr << endl;
return ;
}
```
这段代码将 char* 类型的字符串 "hello world" 转换为 string 类型的字符串 s,然后使用 s.c_str() 方法将其转换为 Cstring 类型的字符串 cstr,并输出 cstr 的值。
char *转CString
在 MFC 框架中,`CString` 是一个非常常用的字符串类,而 `char*` 是 C/C++ 中的字符指针类型。要将 `char*` 转换成 `CString`,可以使用 `CString` 类的构造函数或赋值运算符来实现。
1. 使用构造函数
```cpp
char* cstr = "Hello, World!"; // 假设 cstr 指向一个字符数组
CString str(cstr); // 直接使用 char* 初始化 CString 对象
```
2. 使用赋值运算符
```cpp
char* cstr = "Hello, World!"; // 假设 cstr 指向一个字符数组
CString str;
str = cstr; // 直接将 char* 赋值给 CString 对象
```
需要注意的是,在将 `char*` 转换成 `CString` 对象时,要确保字符串以 NULL 结尾,也就是字符串的最后一个字符是 '\0',否则可能会出现未知错误。