Qstring替换不能正常工作

时间:2010-03-29 11:10:46

标签: qt qt4 qt-creator

我想替换temp.replace

(QString("/"), QString("\"));

我在这里得到错误 错误C2001:常量中的换行符 错误C2275:'QString':非法使用此类型作为表达式

如何将“/”替换为“\”


thakns 4你的回答。但直到现在我还没有解决我的问题。请检查我的代码

//转换为wchar_t *

size_t origsize = strlen(toChar) + 1;

const size_t newsize = 100;

size_t convertedChars = 0;

wchar_t wcstring[newsize];

mbstowcs_s(&convertedChars, wcstring, origsize, toChar, _TRUNCATE);

wcscat_s(wcstring, L"\\*.*\0");

wcout << wcstring << endl; // C:\Documents and Settings\softnotions\Desktop\Release\*.*



SHFILEOPSTRUCT sf;

memset(&sf,0,sizeof(sf));

sf.hwnd = 0;

sf.wFunc = FO_COPY;

 //sf.pFrom =wcstring;  /* when giving wcstring i am not getting answer */

  sf.pFrom = L"C:\\Documents and Settings\\softnotions\\Desktop\\Release\\*.*\0";

   wcout << sf.pFrom  <<endl;   // C:\Documents and      Settings\softnotions\Desktop\Release\*.*

当分配sf.pFrom = wcstring时,wcstring和sf.pFrom都是相同的y not gettng答案;

2 个答案:

答案 0 :(得分:10)

通过另一个\转义:

"\\"

这是一个关于转义如何在字符串中起作用的一般C / C ++问题。由于\用于转义,因此在字符串中具有特殊含义,因此它应该自行转义。


编译器抛出的错误是它看到第二个字符串常量一直持续到行尾,因为\"阻止它结束字符串。

答案 1 :(得分:4)

以下帮助适用于Qt4库!

如果您需要规范化文件绝对路径,可以使用 toNativeSeparators 函数。以下是有关它的Qt助手信息:

  

QString QDir :: toNativeSeparators(   const QString&amp; pathName) [静态]   返回带有'/'的pathName   分隔符转换为分隔符   适合的   基础操作系统。

     

在Windows上,   toNativeSeparators( “C:/ WINNT / SYSTEM32”)   返回“c:\ winnt \ system32”。

     

返回的字符串可能与   关于某些操作的论点   系统,例如在Unix上。

     

这个功能是在Qt中引入的   4.2。

     

另见fromNativeSeparators()和   分离器()。