【发布时间】:2017-05-24 11:26:06
【问题描述】:
我有 1500 个 QChar 的 QString,我想将其转换为 uint32_t 的数组。我正在读取 for 循环中的每个元素,并尝试将每个 QChar 的 QString 保存到 uint32_t 数组。我可以通过 data[i].unicode() 将其转换为等效的表示形式(例如 1 -> 49),但我希望以 uint32_t 数组形式将相同的字符串用于进一步处理。
QString data = {1,'A','C',9,8,.....};
uint32_t Test[data.length()] = {0};
for (uint32_t i =0; i<data.length(); i++) {
Test[i] = data[i]; // here i need QChar to uint32_t conversion
}
有什么解决办法吗?
【问题讨论】:
-
uint16_t不是很适合这种转换的数据类型吗?请注意,QChar代表 16 位。 -
你想在 uint32 中保存什么?作为 UTF8、UTF16 还是 UTF32?此外,引用 QT 网站:“QChar 类提供 16 位 Unicode 字符。”
-
我想把它保存为 uint32_t。转换后,我将把它传递给另一个只接受 uint32_t 类型数组的函数。可以使用
data.toUInt(nullptr,16)将 8 个 QChars 的 Qstring 转换为 uint32_t 类型,但由于我的字符串很长,我需要分别处理每个单独的项目。 -
请编辑问题以描述您对 convert 一词的含义。这个词本身几乎没有意义。
string.toUInt(...)是一种将数字的文本表示形式转换为整数的方法,例如Q_ASSERT(QStringLiteral("789ABC").toUint({},16) == 0x789ABC)。至少,请提供一些转换示例,声明为您寻求并打算持有的某些convert函数的断言。这是指定您希望convert函数执行的操作的好方法。 -
我想将
QString data的项目存储在uint32_t Test[]数组中。例如。如果我有QString data = {1,'A','C',9,8,.....}作为输入而不是输出我想要uint32_t Test = {1,'A','C',9,8,.....}。
标签: c++ qt casting qstring qchar