Qt中string转char
时间: 2023-11-20 12:06:04 浏览: 38
在 Qt 中,可以使用 `QString::toUtf8()` 将 `QString` 转换为 `QByteArray`,然后使用 `QByteArray::constData()` 将 `QByteArray` 转换为 `const char *` 类型的字符串,示例如下:
```cpp
QString str = "Hello, world!";
QByteArray byteArray = str.toUtf8();
const char *charArray = byteArray.constData();
```
此时,`charArray` 指向的就是字符串 "Hello, world!" 的 char 数组表示。注意,`constData()` 返回的指针只在 `QByteArray` 对象存在的情况下有效,如果 `QByteArray` 被销毁了,那么返回的指针也就无效了。
相关问题
qt string类型转char类型
可以使用QString类的toLocal8Bit()方法将QString类型转换成char类型,例如:
```cpp
QString str = "Hello world";
char* cstr = str.toLocal8Bit().data();
```
这里将QString类型的字符串"Hello world"转换为char类型,并将其赋值给指针cstr。需要注意的是,toLocal8Bit()方法返回一个QByteArray类型的对象,需要使用data()方法获取其指向的char数组。
QT 中unsigned char 转string
可以使用QString的fromUtf8()函数将unsigned char类型转换为QString类型,然后再使用QString的toStdString()函数将QString类型转换为std::string类型。具体代码如下:
unsigned char uc = 'a';
QString qstr = QString::fromUtf8(reinterpret_cast<const char*>(&uc), sizeof(uc));
std::string str = qstr.toStdString();