C++ 替换C+中的字符串+;

C++ 替换C+中的字符串+;,c++,string,path,C++,String,Path,我正在创建一个程序,在其中获取文件的路径,然后将其作为参数发送到另一个程序中。问题是当我得到路径时,它有一个特殊的字符'\',这会把我发送给另一个程序的字符串完全弄乱。有没有办法忽略转义字符或将其更改为'/'? 谢谢 要将\更改为/,只需对字符串进行简单的迭代即可。所需代码为: 假定“s”是相关字符串 for (int i = 0; i < s.length(); i++) { if (s[i] == `\`) s[i] = `/`; } for(int i=0;i

我正在创建一个程序,在其中获取文件的路径,然后将其作为参数发送到另一个程序中。问题是当我得到路径时,它有一个特殊的字符
'\'
,这会把我发送给另一个程序的字符串完全弄乱。有没有办法忽略转义字符或将其更改为
'/'

谢谢

要将
\
更改为
/
,只需对字符串进行简单的迭代即可。所需代码为:

假定“s”是相关字符串

for (int i = 0; i < s.length(); i++)
{
  if (s[i] == `\`)
    s[i] = `/`;
}
for(int i=0;i
请详细说明您的问题。第二个程序可能有问题

第一个程序可能是:

char str1[50]="start abc.exe ";
char str2[20];
cin>>str2;
strcat(str1,str2);
system(str1);
第二个程序可能是(abc.exe):

intmain(intargc,char*argv[])
{

对于(i=1;i您是否尝试引用流程参数?您需要转义“\”。我正在考虑添加替换为查找作为参数。唯一的问题是,我不确定是否需要在循环中调用它,或者一次调用是否足以更改所有字符。因此,避免了它。不应该这样做。
int main(int argc,char *argv[])
{
for(i=1;i<argc;i++)
 {     
  cout<<argv[i]<<" \n";
 }
}