所以我有一个字符串:
string path = "C:\Users\Richard\Documents\Visual Studio 2010\Projects\Client\Debug";
Run Code Online (Sandbox Code Playgroud)
我想用正向替换它中的所有反斜杠,所以它看起来像:
C:/Users/Richard/Documents/Visual Studio 2010/Projects/Client/Debug
Run Code Online (Sandbox Code Playgroud)
这不起作用:
string toReplace = "\\";
path.replace(path.find(toReplace), toReplace.length(), "/");
Run Code Online (Sandbox Code Playgroud)
显然,\是一个转义字符,因此可能导致问题.
Fre*_*son 16
我path用g ++ 在你的字符串上遇到编译器错误,因为它包含无效的转义码.显然,MSVC会发出警告但没有错误(参见Michael Burr的回答).因此,如果您确实使用了path已发布的内容,请将反斜杠更改为双反斜杠.
纠正这个问题,我发现你的代码只替换了第一个反斜杠,而其他代码则不然.也许你想使用std::replace(),像这样:
std::replace(path.begin(), path.end(), '\\', '/');
Run Code Online (Sandbox Code Playgroud)
如果您有这样的事情:
string path = "C:\Users\Richard\Documents\Visual Studio 2010\Projects\Client\Debug";
Run Code Online (Sandbox Code Playgroud)
'\'所取得的每一个角色都是特殊的角色.正确的方法是
string path = "C:\\Users\\Richard\\Documents\\Visual Studio 2010\\Projects\\Client\\Debug";
Run Code Online (Sandbox Code Playgroud)
像弗雷德说的那样使用std :: replace.
| 归档时间: |
|
| 查看次数: |
16692 次 |
| 最近记录: |