QString 如何获取 char*
时间: 2023-12-24 18:02:25 浏览: 179
可以通过QString的toUtf8()函数获取其对应的char*类型字符串。
示例代码:
```cpp
QString str = "Hello World!";
const char* cstr = str.toUtf8().constData();
```
其中,toUtf8()函数将QString字符串转换为Utf8编码的QByteArray类型,再通过constData()函数获取其对应的const char*类型指针。需要注意的是,由于constData()返回的是QString内部数据的指针,因此在使用过程中需要注意QString对象的生命周期,避免出现指针悬空的情况。
相关问题
qstring转char*
可以使用toUtf8()函数将QString转换为char*。
示例代码:
```c++
QString str = "Hello World";
char* cstr = str.toUtf8().data();
```
注意事项:
- 转换后的char*指针指向的是QString内部的数据,所以在使用完毕后不要释放指针。
- 如果需要修改转换后的char*指针所指向的字符串内容,需要先使用QString的toUtf8()函数将QString转换为QByteArray类型,再对QByteArray进行修改。
QString 转 char*
可以使用QString类的toUtf8()函数将QString转换为QByteArray,然后使用QByteArray类的data()函数获取char*指针,示例代码如下:
```
QString str = "Hello World";
QByteArray ba = str.toUtf8();
char *c_str = ba.data();
```
需要注意的是,如果要在函数外使用char*指针,需要保证该指针所指向的内存空间是有效的,否则可能会导致程序崩溃或数据损坏。
阅读全文