QString 转 char*
时间: 2023-11-13 20:03:19 浏览: 79
可以使用QString类的toUtf8()函数将QString转换为QByteArray,然后使用QByteArray类的data()函数获取char*指针,示例代码如下:
```
QString str = "Hello World";
QByteArray ba = str.toUtf8();
char *c_str = ba.data();
```
需要注意的是,如果要在函数外使用char*指针,需要保证该指针所指向的内存空间是有效的,否则可能会导致程序崩溃或数据损坏。
相关问题
qstring 转char*
要将QString转换为char*,可以使用QString的toUtf8()方法将其转换为QByteArray,然后使用QByteArray的data()方法获取char*指针。下面是一个示例代码:
```cpp
QString str = "Hello";
QByteArray byteArray = str.toUtf8();
const char* charArray = byteArray.data();
```
在上述代码中,我们首先定义了一个QString对象`str`,然后使用`toUtf8()`方法将其转换为QByteArray对象`byteArray`。最后,我们使用`data()`方法获取`char*`指针并将其赋值给`charArray`变量。
请注意,返回的`char*`指针是指向临时内存的,如果在函数外部使用它,可能会导致未定义的行为。如果需要在函数外部使用转换后的C字符串,请确保在使用完成后进行内存的释放或者复制字符串到其他地方保存。
QString转char*
将QString转换为char*可以使用QString的toLocal8Bit()或toUtf8()函数,如下所示:
QString str = "Hello World";
char* cstr = str.toLocal8Bit().data();
或
char* cstr = str.toUtf8().data();
这样就可以将QString转换为char*类型的字符串了。
阅读全文