QString截断(string截断)

最近写一个Qt小程序用到了QString的截断,在绝对路径中取文件的名字,再拼接到新路径中,用到了两个方法:

方法一:由于对QString没有深入了解,所以采用的QString-->string-->QString,代码如下:

 1         std::string pur = purposelist[i].toStdString();//都转换为string
 2        // qDebug()<<pur<<endl;
 3         std::string sdir = dstpath.toStdString();
 4 
 5         int pos = pur.find_last_of('/'); //找到最后/
 6         std::string s(pur.substr(pos + 1));
 7         sdir.append("/");
 8 
 9         sdir.append(s);
10         QString qsdir = QString(QString::fromLocal8Bit(sdir.c_str()));
11         qDebug() << qsdir << endl;

用这种方法出现的问题是,string中的中文字符转到QString会乱码...

方法二:QString直接进行截断拼接(吐了,我好蠢)

1     //QString截断学习
2     QString src("E:/qq接收文件/MobileFile/thumb/碎裂收据.jpg");
3     qDebug()<<"original path: "<<src<<endl;
4     QString dir("E:/目标文件夹");
5     qDebug()<<"the last string '/' pos is "<<src.lastIndexOf('/')<<endl;
6     QString filename = src.right(src.size() - (src.lastIndexOf("/")+1));
7     qDebug()<<"the true filename is "<<filename<<endl;

 

原文地址:https://www.cnblogs.com/qianxunslimg/p/13737473.html