String与Cstring的转换
时间: 2024-05-09 16:20:22 浏览: 89
在C++中,可以使用以下函数将String转换为Cstring:
1. c_str()函数:将String对象转换为Cstring,返回一个指向Cstring的指针。
例如:
```
string str = "Hello World";
const char* cstr = str.c_str(); // cstr指向"Hello World"的Cstring
```
2. data()函数:与c_str()函数类似,将String对象转换为Cstring,返回一个指向Cstring的指针。
例如:
```
string str = "Hello World";
const char* cstr = str.data(); // cstr指向"Hello World"的Cstring
```
3. copy()函数:将String对象的数据复制到一个字符数组中。
例如:
```
string str = "Hello World";
char cstr[20];
str.copy(cstr, 11); // 将"Hello World"的前11个字符复制到cstr中
```
将Cstring转换为String,可以使用String的构造函数或赋值运算符。
例如:
```
const char* cstr = "Hello World";
string str1(cstr); // 使用构造函数将Cstring转换为String
string str2 = cstr; // 使用赋值运算符将Cstring转换为String
```
相关问题
CString 转换 String
在 MFC 中,可以使用 `CString` 类型的 `GetString()` 方法将其转换为 `const char*`,然后使用 `std::string` 的构造函数将其转换为 `std::string` 类型。
示例代码:
```cpp
CString cs = _T("Hello, World!");
const char* pszStr = cs.GetString();
std::string str(pszStr);
```
另外,也可以使用 ATL 中的 `CT2CA` 函数将 `CString` 转换为 `const char*`,然后再使用 `std::string` 的构造函数将其转换为 `std::string` 类型。
示例代码:
```cpp
#include <atlconv.h>
CString cs = _T("Hello, World!");
const char* pszStr = CT2CA(cs);
std::string str(pszStr);
```
cstring转换为string
您可以使用std::string的构造函数将C字符串转换为std::string。以下是一个示例代码:
```cpp
#include <iostream>
#include <string>
int main() {
const char* cstr = "Hello, C++!";
std::string str(cstr);
std::cout << "C字符串: " << cstr << std::endl;
std::cout << "转换后的std::string: " << str << std::endl;
return 0;
}
```
该代码将C字符串`cstr`转换为`std::string`类型的变量`str`。输出结果将是:
```
C字符串: Hello, C++!
转换后的std::string: Hello, C++!
```
请注意,在进行此类转换时,请确保C字符串(以空字符结尾的字符数组)已经正确初始化。
阅读全文