一段简单代码~~~ 马上给分~~

block1956815 2004-09-12 04:33:25
函数功能: 把'\'字符转换成‘\\’字符。
bool Trans(string& str)
{
if(str.empty())
return false;
string::size_type rep ;
string::size_type cur = 0;
while(cur!=string::npos)
{
rep = str.find_first_of( "\" , cur); //这里和下一行出错
if(rep == string::npos)
return true;
str.replace(rep , rep , "\\");
cur = rep++;
}
return true;
}

projects\test\test.h(103) : error C2001: newline in constant
f:\vpn\testprojects\test\test.h(104) : error C2143: syntax error : missing ')' before 'if'
Error executing cl.exe.
...全文
181 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
cpunion 2004-09-15
  • 打赏
  • 举报
回复
我测试是没有问题的。
pingeryan9468 2004-09-14
  • 打赏
  • 举报
回复
:赞成toLearn(在路上)
我运行程序了,没问题
block1956815 2004-09-13
  • 打赏
  • 举报
回复
我说过了啊~~

str.replace(rep , 1 , "\\\\");
cur = rep+2;

改成上面那样是不行的~~~
toLearn 2004-09-12
  • 打赏
  • 举报
回复
replace(iterator1,iterator2,"")
iterator1:开始位置
iterator2:要被替换的最后一个字符的下一位置

这里改成这样就行了:
str.replace(rep , 1 , "\\\\");
cur = rep+2;
block1956815 2004-09-12
  • 打赏
  • 举报
回复
好像不是这个问题~~~

replace()第二个参数可以是长度 也可以是结束位置 就象
str.replace(rep , rep , "\\\\");

cpunion 2004-09-12
  • 打赏
  • 举报
回复
搜了一下,第2个参数改成长度即可。本例应该是1。
cpunion 2004-09-12
  • 打赏
  • 举报
回复
string::replace的参数我记不太清了,手头也没有文档,第2个参数好像是要替换部分的长度吧?
block1956815 2004-09-12
  • 打赏
  • 举报
回复
多谢楼上兄弟~~`

恩~~~ 之前我试过了的 该成cur = rep+2 也没用~~~
cpunion 2004-09-12
  • 打赏
  • 举报
回复
哦写错了,是:
cur = rep + 2;
cpunion 2004-09-12
  • 打赏
  • 举报
回复
str.replace(rep , rep , "\\\\");
cur = rep++;

你替换以后,cur位置又是一个“\”字符了,会无限替换下去。改为:
cur += 2;
这个2是替换字符串的长度。
block1956815 2004-09-12
  • 打赏
  • 举报
回复
改了后灭有起到作用 帮忙看看是什么问题啊~~~

bool Trans(string& str)
{
if(str.empty())
return false;
string::size_type rep ;
string::size_type cur = 0;
while(cur!=string::npos)
{
rep = str.find_first_of( "\\" , cur);
if(rep == string::npos)
return true;
str.replace(rep , rep , "\\\\");
cur = rep++;
}
return true;
}
block1956815 2004-09-12
  • 打赏
  • 举报
回复
了解~~~
pacman2000 2004-09-12
  • 打赏
  • 举报
回复
\\代替\,\\\\代替\\
cpunion 2004-09-12
  • 打赏
  • 举报
回复
“\”在C语言里是转义字符,用“\\”表示一个反斜杠。

33,311

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 新手乐园
社区管理员
  • 新手乐园社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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