C++ string里面 "\"如何替换成"\\"

blink31 2013-06-08 07:17:54
我获取了路径 string ss = "E:\Image\Test\";
但是我要的路径是 "E:\\Image\\Test\\"
是两个斜杆!! 这个怎么替换下啊,求大家告诉我下,谢谢了!
...全文
1350 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
采石工 2013-07-03
  • 打赏
  • 举报
回复 1
这是为什么?
引用 6 楼 zhao4zhong1 的回复:
[quote=引用 3 楼 zhao4zhong1 的回复:] 我预言:帖主不需要替换。
尽管如此:
#include <iostream>
#include <string>
#include <algorithm>
using namespace std;
int main(){
	string ss = "E:\\Image\\Test\\";
	cout<<ss<<endl;
	for (size_t i=0;i<ss.size();i++) {
		if (ss[i]=='\\') {
			ss.insert(i,string("\\")); 
			i++;
		}
	}
	cout<<ss<<endl;
	return 0;
}
//E:\Image\Test\
//E:\\Image\\Test\\
//
[/quote]
blink31 2013-07-01
  • 打赏
  • 举报
回复
解决了! 谢谢大家
赵4老师 2013-06-09
  • 打赏
  • 举报
回复
我预言:帖主不需要替换。
SKATE11 2013-06-09
  • 打赏
  • 举报
回复
string类有替换的函数。。。
ask14k 2013-06-09
  • 打赏
  • 举报
回复
不需要替换 一个\就可以了吧
我看你有戏 2013-06-09
  • 打赏
  • 举报
回复
string ss = 获取的路径字符串 printf("%s",ss.c_str()); 先打印出来看看啊,是你想要的路径吗,那就无需替换,多打印
hsz871204 2013-06-09
  • 打赏
  • 举报
回复
需求很奇怪。。不知道你要双斜杆的目的是什么
赵4老师 2013-06-09
  • 打赏
  • 举报
回复
6楼代码第3行多余可不要。
赵4老师 2013-06-09
  • 打赏
  • 举报
回复
引用 3 楼 zhao4zhong1 的回复:
我预言:帖主不需要替换。
尽管如此:
#include <iostream>
#include <string>
#include <algorithm>
using namespace std;
int main(){
	string ss = "E:\\Image\\Test\\";
	cout<<ss<<endl;
	for (size_t i=0;i<ss.size();i++) {
		if (ss[i]=='\\') {
			ss.insert(i,string("\\")); 
			i++;
		}
	}
	cout<<ss<<endl;
	return 0;
}
//E:\Image\Test\
//E:\\Image\\Test\\
//
疯狂的红豆 2013-06-09
  • 打赏
  • 举报
回复
引用 4 楼 ZLhy_ 的回复:
windows下文件分隔符是\,linux下是/,其他的不晓得,但是在windows下\又是一个转义字符,所以想要使用windows分隔符必须使用两个\\来向系统说明第二个\是我要的字符串中的一个字符,而不是转义语义了
至于怎么在string内全文替换,参看string的replace方法,总有一个使用你的
疯狂的红豆 2013-06-09
  • 打赏
  • 举报
回复
windows下文件分隔符是\,linux下是/,其他的不晓得,但是在windows下\又是一个转义字符,所以想要使用windows分隔符必须使用两个\\来向系统说明第二个\是我要的字符串中的一个字符,而不是转义语义了
  • 打赏
  • 举报
回复
逐字符读取字符,遇到'\',就加'\\'
int len = strlen(ss);
char* p = ss;
string res("");
for(int idx = 0; idx < len; ++idx)
{
    if(*p == '\')
    {
        res += "\\";
    }
    else
    {
        res += *p;
    }
}
qq453345496 2013-06-08
  • 打赏
  • 举报
回复
string ss = "E:\\\\Image\\\\Test\\\\";

64,685

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧