目录
C++ 使用replace()方法替换字符串中的反斜杠:左斜杠(\)和右斜杠(/)
qt - 如何使用 QString replace() 将 '/' 替换为 '\\'?
QT5快速转换路径(/斜杠与\反斜杠转换)
-------------------------------------------------
QDir::separator() : /
NativeSeparators :\
QString strpath=QDir::fromNativeSeparators(str);
QString strpath2 = QDir::toNativeSeparators(strpath);QDir::separator();
------------------------
//代码
QString xTest ="///abd\\grt\\nnmm\\pee\\\\pp\\\\\\ppp//rr///qqaa/pppp";
QString strpath=QDir::fromNativeSeparators(xTest);
qDebug()<<"strpath : 111 "<<strpath;
QString zzxTest ="///abd\p\\grt\\\ppp/sss\\\nnmm\\\\\\ee\\\\\rr///qqaa/pppp";
QString strpath2 = QDir::fromNativeSeparators(zzxTest);
qDebug()<<"strpath2 : 222 " << strpath2;
输出结果:
strpath : 111 "///abd/grt/nnmm/pee//pp///ppp//rr///qqaa/pppp"
strpath2 : 222 "///abdp/grt/ppp/sss/\nnmm///ee//\rr///qqaa/pppp"
说明:
1. 有连续的单数个的 Native Separator 时,为转移字符。
1.1. 当在转义字符的右侧,使用了没有定义的字母时,
错误提示:mainwindow.cpp:27:29: warning: unknown escape sequence '\p'
1.2. 当在转义字符的右侧,使用了已经定义的字母时,看具体的定义而言:
可能输出:“/\”,“//\”, 或者没有输出。这个多样化、复杂了。
2. 有连续的双数个的 Native Separator 时,为转移字符。
每2个 "\\",会被 1个 "/" 所替代。
3. 作为路径使用时,“/”是跨平台的吧?
“/” :在 linux和 window都可以直接使用。
但 macOS就不清楚了,谁能在 macOS上帮忙试试,给个答案吧?
======================================
QDir
https://doc.qt.io/qtforpython-5/PySide2/QtCore/QDir.html
C++ 使用replace()方法替换字符串中的反斜杠:左斜杠(\)和右斜杠(/)
C++将左斜杠替换成右斜杠,把/换成\,把换\成/
#include <iostream>
#include <string>
#include <stdio.h>
int main(int argc, const char **argv)
{
//图片路径在 .\abc\defg\h.jpeg
string facepath = ".\\abc\\defg\\h.jpeg";
string FacePath = facepath.substr(2); //去掉前两个字符.\
replace(FacePath.begin(), FacePath.end(), '\\', '/'); //替换'\'为'/'
cout << "FacePath=" << FacePath << endl;
return 0;
}
输出:
FacePath=abc/defg/h.jpeg
或:
//FacePath= FacePath.replace(FacePath.find("\\") ,1, "/" );
//FacePath = FacePath.replace(FacePath.find("\\"), 1, "/");
————————————————
版权声明:本文为CSDN博主「易小侠」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/dwf1354046363/article/details/120196618
qt中路径中的反斜杠和斜杠的替换
https://blog.csdn.net/Littlehero_121/article/details/115078556
以下内容摘抄博客:https://blog.csdn.net/u013541325/article/details/107511050
QString str = "D:\\02_Demo\\123";
//## \转/ (反斜杠转斜杠)
QString strpath=QDir::fromNativeSeparators(str);
qDebug()<<"strpath=="<<strpath;
//## 将 /转\(斜杠转反斜杠)
QString strpath2 = QDir::toNativeSeparators(strpath);
qDebug()<<"strpath2=="<<strpath2;
QT5快速转换路径(/斜杠与\反斜杠转换)
1./转\(斜杠转反斜杠)函数
[static] QString QDir::toNativeSeparators(const QString &pathName)
2./转\(斜杠转反斜杠)函数
[static] QString QDir::fromNativeSeparators(const QString &pathName)
下面测试典例:
//获取应用程序的目录
QString strCurrentApplicationDirPath=QCoreApplication::applicationDirPath();
qDebug()<<strCurrentApplicationDirPath;
/*将/转\(斜杠转反斜杠)*/
QString strPath=QDir::toNativeSeparators(strCurrentApplicationDirPath);
qDebug()<<strPath;
/*将\转/(反斜杠转斜杠)*/
QString strPath2=QDir::fromNativeSeparators(strPath);
qDebug()<<strPath2;
调试输出如下:
"D:/QT5SourceCode/build-untitled-Desktop_Qt_5_12_5_MinGW_64_bit-Debug/debug"
"D:\\QT5SourceCode\\build-untitled-Desktop_Qt_5_12_5_MinGW_64_bit-Debug\\debug"
"D:/QT5SourceCode/build-untitled-Desktop_Qt_5_12_5_MinGW_64_bit-Debug/debug"
————————————————
版权声明:本文为CSDN博主「皓月盈江」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/u013541325/article/details/107511050
qt - 如何使用 QString replace() 将 '/' 替换为 '\\'?
任何人都可以帮助关注吗?假设我有一个带有存储某个文件的文件路径的 QString,我想替换 /
(斜线)从它 \\
(双反斜杠)我试过:
mystring.replace("/","\\");
但它只放了一个
\
而不是
\\
替换前的字符串:
D:/myfiles/abc.zip
替换后的字符串:
D:\myfiles\abc.zip
预期字符串:
D:\\myfiles\\abc.zip
最佳答案
您需要使用:
mystring.replace("/","\\\\");
编译器使用
\
作为字符串中的转义字符(例如
\t
、
\n
或
\r
),以便
\\
居然变成了
\
.如果需要两个反斜杠,则需要从四个开始。
关于qt - 如何使用 QString replace() 将 '/' 替换为 '\\'?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11841961/