QString ejemplo="ejemplo";
std::cout << ejemplo.at(0).toLatin1(); //funcion at devuelve el tipo de dato Qchar de la cadena en la posicion 0
//y .toLatin1() devuelve el caracter en dato char.
QByteArray ejemploByteArray=ejemplo2.toLatin1();
ejemploByteArray.constData(); //devuelve un puntero constante a un data *char, por ejemplo si solo es un parametro de lectura
ejemploByteArray.data(); //devuelve un puntero *char, este si modificable, por lo que si lo manipulas cambiaras tambien los datos de QByteArray, por lo que aqui si hay que tener cuidado.
QString
具有toStdString()
返回 a的方法std::string
。char
从这个对象中获取 a是微不足道的:一切顺利。
问。
不可能从复杂类型(在这种情况下
QString
)转换为基本类型(在这种情况下char
),您的问题类似于“如何将汽车变成活塞? ”。虽然汽车确实有发动机,发动机也有活塞,但活塞是汽车的一部分。
尽管您将使用 Pistons 来构建您的 Car,但您无法将Car 变成 Piston ...平行地,您无法将a
QString
变成 a,char
尽管您将char
用作 a 的一部分QString
。所以我猜你实际上是想问:
所以我将根据这个假设来回答。
澄清。
QString
它被创建为类似于字符串类的类;因此它具有相似、等效或完全相同的方法。建议。
使用索引运算符(通过方括号
[
和访问]
)。鉴于两者之间几乎完全等价QString
,std::string
两个对象都具有此运算符,并且以相同的方式使用它。QString::operator []
.std::string::operator []
.因此,在以下示例中,它们都显示
@
在第五个位置使用括号运算符:好吧,假设您使用的是 Qt 5.x,它相对简单。
要将 a 中的一个字符转换为一个(或一些)字符,
QString
您必须使用类似以下代码的内容:相反,如果您想转换整体
QString
,更快的选择是.toLatin1()
在对象上使用QString
。A
QByteArray
大致是一个充当动态数组的类char
(可以连接、添加、删除等),没有动态内存的复杂性。另外,必须说,如果使用or函数,
QByteArray
可以将数据作为类型获取。char
data
constData