gpt4 book ai didi

c++ - 将字符串转换为字符指针

转载 作者:太空宇宙 更新时间:2023-11-04 14:37:30 26 4
gpt4 key购买 nike

我想将 QString 转换成 char*

我该怎么做?

谢谢。

最佳答案

使用 toAscii/toLatin1/toUtf8 QString 方法获取纯字符数组 (QByteArray)。您需要哪种方法取决于您希望字符数据采用的编码。对于其他编码,请参见 QTextCodec。从 QByteArray 中,您可以使用 QByteArray::constData() 获取 const char* 或使用 QByteArray::data() 获取 char*。尽可能使用 constData(),因为 data() 通常会创建一个不必要的拷贝,除非您需要通过 char* 修改数据。

另请注意,const char* data = str.toUtf8().constData() 可能 有效,但很危险,因为在 toUtf8() 中创建的临时 QByteArray 在语句结束后立即被销毁.由于从 constData() 返回的 char* 在字节数组被销毁时变得无效,您应该将字节数组保存在一个临时变量中,如下所示:

const QByteArray ba = str.toUtf8(); // or toAscii, toLatin1, depending on the encoding you  want
const char* data = ba.constData();

关于c++ - 将字符串转换为字符指针,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5447740/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com