【发布时间】:2015-03-08 18:00:13
【问题描述】:
我需要将 Str 转换为 char*,但有时会丢失部分字符串。
例如:
str: "/Users/seb/Pictures/Photos/20141009 - Aulani - Hawaii/20141009_083318_Richtone(HDR).jpg"
char*: /Users/seb/Pictures/Photos/20141009 - Aulani - Hawaii/20141009_083318_Ri
我正在使用下面的代码:
void TreeWidget::CopyFilesFromLocal(QStringList pathList, QTreeWidgetItem * item) {
QString fileelt;
uint32_t Folder_id = INVALID;
MyTreeWidget* myItem = dynamic_cast<MyTreeWidget*>(item);
uint32_t destination_id = myItem->mtp_item_id;
item->setExpanded(true);
qDebug() << "**************************************";
qDebug() << "Send to PULS Start";
qDebug() << "Start of Loop to copy files";
foreach(fileelt, pathList) {
char *txt = NULL;
// char *isFileName = NULL;
qDebug() << "str: " << fileelt;
txt = strdup(m_device.convertQStr2char(fileelt));
qDebug() << "char*: " << txt;
这是我使用的api。
char *PulsDeviceMngr::convertQStr2char(QString str) {
return const_cast<char*>(std::string(str.toUtf8().constData() ).c_str());
}
有什么想法吗?
【问题讨论】:
-
当你说
Str时,你的意思是std::string还是QString?这并不重要,因为两者都有非常详细的函数来将const char*获取到包含的字符串。 -
我的意思是 Qstring。我主要将它用于 QString。
-
如果是 std:string 有什么区别
标签: c++ string qt char qstring